## com.bbn.openmap.layer
Class ScaleFilterLayer

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  com.bbn.openmap.Layer
                      com.bbn.openmap.layer.ScaleFilterLayer

All Implemented Interfaces:
  java.awt.event.ActionListener, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.util.EventListener, java.awt.image.ImageObserver, InfoDisplayListener, LayerStatusListener, MapMouseListener, java.awt.MenuContainer, ProjectionListener, ProjectionPainter, java.beans.PropertyChangeListener, PropertyConsumer, java.io.Serializable

public class ScaleFilterLayer
extends Layer
implements InfoDisplayListener, LayerStatusListener, java.beans.PropertyChangeListener, MapMouseListener

An OpenMap Layer that encapsulates other layers and acts as a scale filter. It will delegate responsibility to one of several layers depending on the scale.

To use this layer, list it as a layer in the openmap.properties file in the openmap.layers properties, as you would add any other layer. Then, add these properties to the openmap.properties file. The layers added to the ScaleFilterLayer do not get added to the openmap.layers property, but instead get added to the scaledFilterLayer.layers property listed here. Then, the properties for these layers are added to the openmap.properties file like any other layer.
The properties for this layer look like this:
``

            #######################################
            # Properties for ScaleFilterLayer
            #######################################
            scaledFilterLayer.class=com.bbn.openmap.layer.ScaleFilterLayer
            scaledFilterLayer.prettyName=&ltPretty name used on menu&ge
            # List 2 or more layers, larger scale layers first
            scaledFilterLayer.layers=layer_1 layer_2 layer_3 ...
            # List the transition scales to switch between layers
            scaledFilterLayer.transitionScales= (transition scale from layer 1 to 2) (transition scale from layer 2 to 3) (...)
            #######################################

See Also:
  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 MapMouseListener` `clmml` The current MapMouseListener from the currently appropriate layer.
`protected boolean` `coolMM` Flag to specify that the current layer wants events from the current active mouse mode.
`protected float` `defaultTransitionScale` The default transition scale.
`protected java.util.Vector` `layers` The layers.
`static java.lang.String` `layersProperty` The layers property.
`protected java.lang.String` `mmID` The current active mouse mode ID.
`protected javax.swing.JPanel` `panel`
`protected javax.swing.JTabbedPane` `tabs`
`protected int` `targetIndex` The index of the currently selected layer.
`protected float[]` `transitionScales` The transition scales.
`static java.lang.String` `transitionScalesProperty` The transition scales property.

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
`ScaleFilterLayer()` Initializes an empty layer.

Method Summary
`boolean` `checkMouseMode()` Set the coolMM flag, whenever the scale-appropriate layer changes, or if the active mouse mode changes.
`protected Layer` `configureAppropriateLayer(float scale)`
`void` `findAndInit(java.lang.Object obj)` MapHandler child methods, passing found objects to child layers.
`void` `findAndUndo(java.lang.Object obj)` MapHandler child methods, passing removed objects to child layers.
`Layer` `getAppropriateLayer()` Get the layer that's appropriate at the current scale.
`MapMouseListener` `getCurrentLayerMapMouseListener()` Get the MapMouseListener to received events if the current layer wants them.
`java.awt.Component` `getEmptyGUIFiller(Layer layer)`
`java.awt.Component` `getGUI()` Get the GUI (palettes) for the layers.
`java.util.Vector` `getLayers()` Get the Vector holding the Layers.
`MapMouseListener` `getMapMouseListener()` Try to handle mouse events for the current layer.
`java.lang.String[]` `getMouseModeServiceList()` Return a list of the modes that are interesting to the MapMouseListener.
`java.util.Properties` `getProperties(java.util.Properties props)` PropertyConsumer method, to fill in a Properties object, reflecting the current values of the layer.
`float[]` `getTransitionScales()` Get the transition scales used to set the active layer.
`boolean` `mouseClicked(java.awt.event.MouseEvent e)` Invoked when the mouse has been clicked on a component.
`boolean` `mouseDragged(java.awt.event.MouseEvent e)` Invoked when a mouse button is pressed on a component and then dragged.
`void` `mouseEntered(java.awt.event.MouseEvent e)` Invoked when the mouse enters a component.
`void` `mouseExited(java.awt.event.MouseEvent e)` Invoked when the mouse exits a component.
`void` `mouseMoved()` Handle a mouse cursor moving without the button being pressed.
`boolean` `mouseMoved(java.awt.event.MouseEvent e)` Invoked when the mouse button has been moved on a component (with no buttons down).
`boolean` `mousePressed(java.awt.event.MouseEvent e)` Invoked when a mouse button has been pressed on a component.
`boolean` `mouseReleased(java.awt.event.MouseEvent e)` Invoked when a mouse button has been released on a component.
`void` `paint(java.awt.Graphics g)` Renders the scale-appropriate layer on the map.
`protected void` `parseLayers(java.lang.String prefix, java.util.Properties props)` Create the Layers from a property value string.
`protected void` `parseScales(java.lang.String prefix, java.util.Properties props)` Create the transition scales from a property value string.
`void` `projectionChanged(ProjectionEvent ev)` Handles projection change notification events.
`void` `propertyChange(java.beans.PropertyChangeEvent evt)` Listen for changes to the active mouse mode and for any changes to the list of available mouse modes
`void` `renderDataForProjection(Projection proj, java.awt.Graphics g)` Implementing the ProjectionPainter interface.
`void` `requestBrowserContent(InfoDisplayEvent event)` Request that plain text or html text be displayed in a browser.
`void` `requestCursor(java.awt.Cursor cursor)` Request that the MapBean cursor be set to a certain type.
`void` `requestHideToolTip()` Request a tool tip be hidden.
`void` `requestInfoLine(InfoDisplayEvent event)` Request to have an information line displayed in an application status window.
`void` `requestMessage(InfoDisplayEvent event)` Request to have a message displayed in a dialog window.
`void` `requestShowToolTip(InfoDisplayEvent event)` Request a tool tip be shown.
`void` `requestURL(InfoDisplayEvent event)` Request to have a URL displayed in a Browser.
`void` `setBeanContext(java.beans.beancontext.BeanContext in_bc)` Method for BeanContextChild interface.
`void` `setCurrentLayerMapMouseListener(MapMouseListener mml)` Pre-set the MapMouseListener to received events if the current layer wants them.
`void` `setLayersAndScales(java.util.Vector list, float[] scales)` Programmatic way to set layers and scales.
`protected void` `setPaletteTab(int layerIndex)`
`void` `setProperties(java.lang.String prefix, java.util.Properties props)` Initializes this layer from the given properties.
`boolean` `setTargetIndex(float scale)` Calculate the index of the target layer.
`void` `updateLayerStatus(LayerStatusEvent evt)` Try to handle receiving LayerStatusEvents from child layers.

Methods inherited from class com.bbn.openmap.Layer

`actionPerformed, addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, finalize, findAndInit, 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, getPropertyInfo, getPropertyPrefix, getWindowSupport, hasGUI, hidePalette, isAutoPalette, isProjectionOK, isRemovable, notifyHideHack, putAttribute, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setAutoPalette, 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 java.beans.beancontext.BeanContextChild
`addPropertyChangeListener, removePropertyChangeListener`

Field Detail

### layersProperty

    public static final transient java.lang.String layersProperty

  The layers property.

  See Also:
    Constant Field Values

### transitionScalesProperty

    public static final transient java.lang.String transitionScalesProperty

  The transition scales property.

  See Also:
    Constant Field Values

### layers

    protected java.util.Vector layers

  The layers.

### transitionScales

    protected float[] transitionScales

  The transition scales.

### defaultTransitionScale

    protected float defaultTransitionScale

  The default transition scale.

### targetIndex

    protected int targetIndex

  The index of the currently selected layer.

### panel

    protected javax.swing.JPanel panel

### tabs

    protected javax.swing.JTabbedPane tabs

### mmID

    protected java.lang.String mmID

  The current active mouse mode ID.

### coolMM

    protected boolean coolMM

  Flag to specify that the current layer wants events from the current active mouse mode.

### clmml

    protected MapMouseListener clmml

  The current MapMouseListener from the currently appropriate layer.

Constructor Detail

### ScaleFilterLayer

    public ScaleFilterLayer()

  Initializes an empty layer.

Method Detail

### getLayers

    public java.util.Vector getLayers()

  Get the Vector holding the Layers. If it hasn't been asked for yet, a new, empty Vector will be returned, one that will be used internally.

### getTransitionScales

    public float[] getTransitionScales()

  Get the transition scales used to set the active layer.

### setLayersAndScales

    public void setLayersAndScales(java.util.Vector list,
                                   float[] scales)

  Programmatic way to set layers and scales. There should be one more layer on the list than there is scale in the float array. Layers that should be displayed for larger scale numbers (smaller scale) should be at the front of the Vector list, and larger numbers should be at the front of the scale array. For scale numbers larger than the first number in the array, the first layer will be displayed. As the scale number decreases, other layers will be displayed.

  Parameters:
    `list` - Vector of layers
    `scales` - Array of transition scales.

### 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 `Layer`
  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)

  Description copied from class: `Layer`
  PropertyConsumer method, to fill in a Properties object, reflecting the current values of the layer. If the layer has a propertyPrefix set, the property keys should have that prefix plus a separating '.' prepended to each propery key it uses for configuration.

  Specified by:
    `getProperties` in interface `PropertyConsumer`
  Overrides:
    `getProperties` in class `Layer`
  Parameters:
    `props` - a Properties object to load the PropertyConsumer properties into. If props 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.

### getAppropriateLayer

    public Layer getAppropriateLayer()

  Get the layer that's appropriate at the current scale. The targetedIndex needs to be set before this is called. The targetedIndex is the index to the layers array representing the current layer.

  Returns:
    Layer

### parseLayers

    protected void parseLayers(java.lang.String prefix,
                               java.util.Properties props)

  Create the Layers from a property value string.

  Parameters:
    `prefix` - String
    `props` - Properties

### parseScales

    protected void parseScales(java.lang.String prefix,
                               java.util.Properties props)

  Create the transition scales from a property value string. If there are N layers, there should be N-1 transition scales.

  Parameters:
    `prefix` - String
    `props` - Properties

### renderDataForProjection

    public void renderDataForProjection(Projection proj,
                                        java.awt.Graphics g)

  Implementing the ProjectionPainter interface.

  Specified by:
    `renderDataForProjection` in interface `ProjectionPainter`
  Overrides:
    `renderDataForProjection` in class `Layer`
  Parameters:
    `proj` - Projection of the map.
    `g` - java.awt.Graphics to draw into.

### setTargetIndex

    public boolean setTargetIndex(float scale)

  Calculate the index of the target layer. If there are N layers, there are N-1 transitionScales. The ith layer is chosen if the scale is greater than the ith transitionScale.

  Parameters:
    `scale` - the current map scale
  Returns:
    true if the targetIndex has changed as a result of the new scale.

### projectionChanged

    public void projectionChanged(ProjectionEvent ev)

  Handles projection change notification events. Throws out old graphics, and requests new graphics from the spatial index based on the bounding rectangle of the new `Projection`.

  Specified by:
    `projectionChanged` in interface `ProjectionListener`
  Parameters:
    `ev` - the new projection event

### configureAppropriateLayer

    protected Layer configureAppropriateLayer(float scale)

### paint

    public void paint(java.awt.Graphics g)

  Renders the scale-appropriate layer on the map.

  Parameters:
    `g` - a graphics context

### updateLayerStatus

    public void updateLayerStatus(LayerStatusEvent evt)

  Try to handle receiving LayerStatusEvents from child layers. May not always work, depending on what thread sends/receives this event - usually in the Swing thread, and the GUI can't always be updated as expected.

  Specified by:
    `updateLayerStatus` in interface `LayerStatusListener`
  Parameters:
    `evt` - LayerStatusEvent

### getGUI

    public java.awt.Component getGUI()

  Get the GUI (palettes) for the layers. The BufferedLayer actually creates a JTabbedPane holding the palettes for all of its layers, and also has a pane for itself that provides visibility control for the group layers.

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

### getEmptyGUIFiller

    public java.awt.Component getEmptyGUIFiller(Layer layer)

### setPaletteTab

    protected void setPaletteTab(int layerIndex)

### requestURL

    public void requestURL(InfoDisplayEvent event)

  Request to have a URL displayed in a Browser.

  Specified by:
    `requestURL` in interface `InfoDisplayListener`
  Parameters:
    `event` - InfoDisplayEvent

### requestMessage

    public void requestMessage(InfoDisplayEvent event)

  Request to have a message displayed in a dialog window.

  Specified by:
    `requestMessage` in interface `InfoDisplayListener`
  Parameters:
    `event` - InfoDisplayEvent

### requestInfoLine

    public void requestInfoLine(InfoDisplayEvent event)

  Request to have an information line displayed in an application status window.

  Specified by:
    `requestInfoLine` in interface `InfoDisplayListener`
  Parameters:
    `event` - InfoDisplayEvent

### requestBrowserContent

    public void requestBrowserContent(InfoDisplayEvent event)

  Request that plain text or html text be displayed in a browser.

  Specified by:
    `requestBrowserContent` in interface `InfoDisplayListener`
  Parameters:
    `event` - InfoDisplayEvent

### requestCursor

    public void requestCursor(java.awt.Cursor cursor)

  Request that the MapBean cursor be set to a certain type.

  Specified by:
    `requestCursor` in interface `InfoDisplayListener`
  Parameters:
    `cursor` - java.awt.Cursor to set over the MapBean.

### requestShowToolTip

    public void requestShowToolTip(InfoDisplayEvent event)

  Request a tool tip be shown.

  Specified by:
    `requestShowToolTip` in interface `InfoDisplayListener`
  Parameters:
    `event` - The InfoDisplayEvent containing the text and requestor.

### requestHideToolTip

    public void requestHideToolTip()

  Request a tool tip be hidden.

  Specified by:
    `requestHideToolTip` in interface `InfoDisplayListener`

### getMapMouseListener

    public MapMouseListener getMapMouseListener()

  Try to handle mouse events for the current layer.

  Overrides:
    `getMapMouseListener` in class `Layer`
  Returns:
    null

### checkMouseMode

    public boolean checkMouseMode()

  Set the coolMM flag, whenever the scale-appropriate layer changes, or if the active mouse mode changes.

### setCurrentLayerMapMouseListener

    public void setCurrentLayerMapMouseListener(MapMouseListener mml)

  Pre-set the MapMouseListener to received events if the current layer wants them.

### getCurrentLayerMapMouseListener

    public MapMouseListener getCurrentLayerMapMouseListener()

  Get the MapMouseListener to received events if the current layer wants them. May be null, but coolMM should be false in that case.

### propertyChange

    public void propertyChange(java.beans.PropertyChangeEvent evt)

  Listen for changes to the active mouse mode and for any changes to the list of available mouse modes

  Specified by:
    `propertyChange` in interface `java.beans.PropertyChangeListener`

### getMouseModeServiceList

    public java.lang.String[] getMouseModeServiceList()

  Return a list of the modes that are interesting to the MapMouseListener. The source MouseEvents will only get sent to the MapMouseListener if the mode is set to one that the listener is interested in. Layers interested in receiving events should register for receiving events in "select" mode: `

       return new String[] { SelectMouseMode.modeID };

  `

  ``
  Specified by:
    `getMouseModeServiceList` in interface `MapMouseListener`
  Returns:
    String[] of modeID's
  See Also:
    `NavMouseMode.modeID`, `SelectMouseMode.modeID`, `NullMouseMode.modeID`

### mousePressed

    public boolean mousePressed(java.awt.event.MouseEvent e)

  Invoked when a mouse button has been pressed on a component.

  Specified by:
    `mousePressed` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent
  Returns:
    true if the listener was able to process the event.

### mouseReleased

    public boolean mouseReleased(java.awt.event.MouseEvent e)

  Invoked when a mouse button has been released on a component.

  Specified by:
    `mouseReleased` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent
  Returns:
    true if the listener was able to process the event.

### mouseClicked

    public boolean mouseClicked(java.awt.event.MouseEvent e)

  Invoked when the mouse has been clicked on a component. The listener will receive this event if it successfully processed `mousePressed()`, or if no other listener processes the event. If the listener successfully processes `mouseClicked()`, then it will receive the next `mouseClicked()` notifications that have a click count greater than one.

  Specified by:
    `mouseClicked` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent
  Returns:
    true if the listener was able to process the event.

### mouseEntered

    public void mouseEntered(java.awt.event.MouseEvent e)

  Invoked when the mouse enters a component.

  Specified by:
    `mouseEntered` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent

### mouseExited

    public void mouseExited(java.awt.event.MouseEvent e)

  Invoked when the mouse exits a component.

  Specified by:
    `mouseExited` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent

### mouseDragged

    public boolean mouseDragged(java.awt.event.MouseEvent e)

  Invoked when a mouse button is pressed on a component and then dragged. The listener will receive these events if it successfully processes mousePressed(), or if no other listener processes the event.

  Specified by:
    `mouseDragged` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent
  Returns:
    true if the listener was able to process the event.

### mouseMoved

    public boolean mouseMoved(java.awt.event.MouseEvent e)

  Invoked when the mouse button has been moved on a component (with no buttons down).

  Specified by:
    `mouseMoved` in interface `MapMouseListener`
  Parameters:
    `e` - MouseEvent
  Returns:
    true if the listener was able to process the event.

### mouseMoved

    public void mouseMoved()

  Handle a mouse cursor moving without the button being pressed. This event is intended to tell the listener that there was a mouse movement, but that the event was consumed by another layer. This will allow a mouse listener to clean up actions that might have happened because of another motion event response.

  Specified by:
    `mouseMoved` in interface `MapMouseListener`

### setBeanContext

    public void setBeanContext(java.beans.beancontext.BeanContext in_bc)
                        throws java.beans.PropertyVetoException

  Method for BeanContextChild interface.

  Specified by:
    `setBeanContext` in interface `java.beans.beancontext.BeanContextChild`
  Overrides:
    `setBeanContext` in class `Layer`
  Throws:
    `java.beans.PropertyVetoException`

### findAndInit

    public void findAndInit(java.lang.Object obj)

  MapHandler child methods, passing found objects to child layers.

  Overrides:
    `findAndInit` in class `Layer`

### findAndUndo

    public void findAndUndo(java.lang.Object obj)

  MapHandler child methods, passing removed objects to child layers.

  Overrides:
    `findAndUndo` in class `Layer`

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