com.bbn.openmap.layer.shape
Class ShapeLayer

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended bycom.bbn.openmap.Layer
                  extended bycom.bbn.openmap.layer.OMGraphicHandlerLayer
                      extended bycom.bbn.openmap.layer.shape.ShapeLayer
All Implemented Interfaces:
java.awt.event.ActionListener, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, DataBoundsProvider, java.util.EventListener, GestureResponsePolicy, java.awt.image.ImageObserver, java.awt.MenuContainer, ProjectionListener, ProjectionPainter, PropertyConsumer, java.io.Serializable
Direct Known Subclasses:
AreaShapeLayer, BufferedShapeLayer, MultiShapeLayer

public class ShapeLayer
extends OMGraphicHandlerLayer
implements java.awt.event.ActionListener, DataBoundsProvider

An OpenMap Layer that displays shape files. Note that the ESRIRecords have been updated so that the OMGraphics that get created from them are loaded with an Integer object that notes the number of the record as it was read from the .shp file. This lets you align the object with the correct attribute data in the .dbf file.

    
     
      
       
        ############################
        # Properties for a shape layer
        shapeLayer.class=com.bbn.openmap.layer.shape.ShapeLayer
        shapeLayer.prettyName=Name_for_Menu
        shapeLayer.shapeFile=&ltpath to shapefile (.shp)&gt
        shapeLayer.spatialIndex=&ltpath to generated spatial index file (.ssx)&gt
        shapeLayer.lineColor=ff000000
        shapeLayer.fillColor=ff000000
        # plus any other properties used by the DrawingAttributes object.
        shapeLayer.pointImageURL=&ltURL for image to use for point objects&gt
        ############################
        
       
      
     
 

Version:
$Revision: 1.12.2.10 $ $Date: 2007/06/21 21:41:39 $
Author:
Tom Mitchell
See Also:
SpatialIndex, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JPanel box
           
protected  GeoCoordTransformation coordTransform
          A translator for converting pre-projected coordinates from the file into decimal degree lat/lon.
protected  DrawingAttributes drawingAttributes
          The DrawingAttributes object to describe the rendering of graphics.
static java.lang.String pointImageURLProperty
          The URL of an image to use for point objects.
protected  int shadowX
          The holders of the shadow offset.
static java.lang.String shadowXProperty
          The name of the property that holds the offset of the shadow.
protected  int shadowY
           
static java.lang.String shadowYProperty
           
static java.lang.String shapeFileProperty
          The name of the property that holds the name of the shape file.
protected  SpatialIndex spatialIndex
          The spatial index of the shape file to be rendered.
static java.lang.String spatialIndexProperty
          The name of the property that holds the name of the spatial index file.
static java.lang.String TransformProperty
          The name of the class providing translation services if needed.
 
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
consumeEvents, ConsumeEventsProperty, filter, interruptable, InterruptableProperty, layerWorker, LAYERWORKER_LOCK, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList, TransparencyProperty
 
Fields inherited from class com.bbn.openmap.Layer
addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, attributes, autoPalette, AutoPaletteProperty, beanContextChildSupport, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, IDListeners, localHackList, lsListeners, maxScale, MaxScaleProperty, minScale, MinScaleProperty, palette, paletteListener, PrettyNameProperty, propertyPrefix, RedrawCmd, removable, RemovableProperty, SWING_PACKAGE, windowSupport
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface com.bbn.openmap.PropertyConsumer
EditorProperty, initPropertiesProperty, LabelEditorProperty, ScopedEditorProperty
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ShapeLayer()
          Initializes an empty shape layer.
ShapeLayer(java.lang.String shapeFileName)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          The default actionPerformed method for Layer.
protected  OMGraphicList computeGraphics()
          Deprecated. use prepare() instead.
 GeoCoordTransformation getCoordTransform()
           
 DataBounds getDataBounds()
          DataBoundsInformer interface.
 DrawingAttributes getDrawingAttributes()
           
 java.awt.Component getGUI()
          Gets the gui controls associated with the layer.
 java.lang.String getInfoText(OMGraphic omg)
          If applicable, should return a short, informational string about the OMGraphic to be displayed in the InformationDelegator.
 java.util.Properties getProperties(java.util.Properties props)
          PropertyConsumer method.
 java.util.Properties getPropertyInfo(java.util.Properties list)
          Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer.
 SpatialIndex getSpatialIndex()
           
 java.lang.String getToolTipTextFor(OMGraphic omg)
          If applicable, should return a tool tip for the OMGraphic.
 void paint(java.awt.Graphics g)
          Renders the layer on the map.
 OMGraphicList prepare()
          Create the OMGraphics using the shape file and SpatialIndex.
 void removed(java.awt.Container cont)
          Called when the Layer is removed from the MapBean, giving an opportunity to clean up.
 void setCoordTransform(GeoCoordTransformation coordTranslator)
           
 void setDrawingAttributes(DrawingAttributes da)
           
protected  void setFileProperties(java.lang.String realPrefix, java.util.Properties props)
          This method gets called from setProperties.
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Initializes this layer from the given properties.
 void setSpatialIndex(SpatialIndex si)
           
 
Methods inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
canSetList, copy, createLayerWorker, cut, deselect, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getFilter, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getRenderPolicy, getSelected, getTransparency, getTransparencyAdjustmentPanel, highlight, interrupt, isCancelled, isHighlightable, isInterruptable, isSelectable, isWorking, leftClick, mouseOver, paste, projectionChanged, receivesMapEvents, renderDataForProjection, resetFiltering, select, setCancelled, setConsumeEvents, setFilter, setInterruptable, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, setTransparency, supportsSQL, unhighlight, workerComplete
 
Methods inherited from class com.bbn.openmap.Layer
addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, finalize, findAndInit, findAndInit, findAndUndo, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getAttribute, getBeanContext, getIcon, getMaxScale, getMinScale, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isRemovable, notifyHideHack, putAttribute, removeComponentListener, removeConfirmed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, setBeanContext, setIcon, setMaxScale, setMinScale, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setRemovable, setVisible, setWindowSupport, showPalette
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.util.DataBoundsProvider
getName
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

shapeFileProperty

public static final java.lang.String shapeFileProperty
The name of the property that holds the name of the shape file.

See Also:
Constant Field Values

spatialIndexProperty

public static final java.lang.String spatialIndexProperty
The name of the property that holds the name of the spatial index file.

See Also:
Constant Field Values

pointImageURLProperty

public static final java.lang.String pointImageURLProperty
The URL of an image to use for point objects.

See Also:
Constant Field Values

shadowXProperty

public static final java.lang.String shadowXProperty
The name of the property that holds the offset of the shadow.

See Also:
Constant Field Values

shadowYProperty

public static final java.lang.String shadowYProperty
See Also:
Constant Field Values

TransformProperty

public static final java.lang.String TransformProperty
The name of the class providing translation services if needed.

See Also:
Constant Field Values

shadowX

protected int shadowX
The holders of the shadow offset. **


shadowY

protected int shadowY

spatialIndex

protected SpatialIndex spatialIndex
The spatial index of the shape file to be rendered.


drawingAttributes

protected DrawingAttributes drawingAttributes
The DrawingAttributes object to describe the rendering of graphics.


coordTransform

protected GeoCoordTransformation coordTransform
A translator for converting pre-projected coordinates from the file into decimal degree lat/lon.


box

protected transient javax.swing.JPanel box
Constructor Detail

ShapeLayer

public ShapeLayer()
Initializes an empty shape layer.


ShapeLayer

public ShapeLayer(java.lang.String shapeFileName)
Method Detail

setSpatialIndex

public void setSpatialIndex(SpatialIndex si)

getSpatialIndex

public SpatialIndex getSpatialIndex()

getCoordTransform

public GeoCoordTransformation getCoordTransform()

setCoordTransform

public void setCoordTransform(GeoCoordTransformation coordTranslator)

setFileProperties

protected void setFileProperties(java.lang.String realPrefix,
                                 java.util.Properties props)
This method gets called from setProperties.

Parameters:
realPrefix - This prefix has already been scoped, which means it is an empty string if setProperties was called with a null prefix, or it's a String ending with a period if it was defined with characters.
props - Properties containing information about files and the layer.

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Initializes this layer from the given properties.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class OMGraphicHandlerLayer
Parameters:
props - the Properties holding settings for this layer
prefix - the token to prefix the property names

getProperties

public java.util.Properties getProperties(java.util.Properties props)
PropertyConsumer method.

Specified by:
getProperties in interface PropertyConsumer
Overrides:
getProperties in class OMGraphicHandlerLayer

getPropertyInfo

public java.util.Properties getPropertyInfo(java.util.Properties list)
Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer. The key for each property should be the raw property name (without a prefix) with a value that is a String that describes what the property key represents, along with any other information about the property that would be helpful (range, default value, etc.).

Specified by:
getPropertyInfo in interface PropertyConsumer
Overrides:
getPropertyInfo in class OMGraphicHandlerLayer
Parameters:
list - a Properties object to load the PropertyConsumer properties into. If getList equals null, then a new Properties object should be created.
Returns:
Properties object containing PropertyConsumer property values. If getList was not null, this should equal getList. Otherwise, it should be the Properties object created by the PropertyConsumer.

setDrawingAttributes

public void setDrawingAttributes(DrawingAttributes da)

getDrawingAttributes

public DrawingAttributes getDrawingAttributes()

getInfoText

public java.lang.String getInfoText(OMGraphic omg)
Description copied from class: OMGraphicHandlerLayer
If applicable, should return a short, informational string about the OMGraphic to be displayed in the InformationDelegator. Return null if nothing should be displayed.

Specified by:
getInfoText in interface GestureResponsePolicy
Overrides:
getInfoText in class OMGraphicHandlerLayer

getToolTipTextFor

public java.lang.String getToolTipTextFor(OMGraphic omg)
If applicable, should return a tool tip for the OMGraphic. Return null if nothing should be shown.

Specified by:
getToolTipTextFor in interface GestureResponsePolicy
Overrides:
getToolTipTextFor in class OMGraphicHandlerLayer

computeGraphics

protected OMGraphicList computeGraphics()
Deprecated. use prepare() instead.

Create the OMGraphics using the shape file and SpatialIndex.

Returns:
OMGraphicList

prepare

public OMGraphicList prepare()
Create the OMGraphics using the shape file and SpatialIndex.

Overrides:
prepare in class OMGraphicHandlerLayer
Returns:
OMGraphicList

paint

public void paint(java.awt.Graphics g)
Renders the layer on the map.

Overrides:
paint in class OMGraphicHandlerLayer
Parameters:
g - a graphics context

getGUI

public java.awt.Component getGUI()
Description copied from class: Layer
Gets the gui controls associated with the layer. This default implementation returns null indicating that the layer has no gui controls.

Overrides:
getGUI in class Layer
Returns:
java.awt.Component or null

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Description copied from class: Layer
The default actionPerformed method for Layer. Make sure you call super.actionPerformed if you care about receiving palette show/hide commands. This method is also set up to receive the DisplayPropertiesCmd, and will bring up the Inspector for the layer.

Specified by:
actionPerformed in interface java.awt.event.ActionListener
Overrides:
actionPerformed in class Layer

getDataBounds

public DataBounds getDataBounds()
DataBoundsInformer interface.

Specified by:
getDataBounds in interface DataBoundsProvider

removed

public void removed(java.awt.Container cont)
Called when the Layer is removed from the MapBean, giving an opportunity to clean up.

Overrides:
removed in class Layer
Parameters:
cont - Container


Copyright (C) BBNT Solutions LLC; See http://openmap.bbn.com/ for details