## com.bbn.openmap.layer.shape
Class ShapeLayer

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  com.bbn.openmap.Layer
                      com.bbn.openmap.layer.OMGraphicHandlerLayer
                          com.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 <tmitchell@bbn.com>
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