com.bbn.openmap.layer
Class DrawingToolLayer

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.DrawingToolLayer
All Implemented Interfaces:
java.awt.event.ActionListener, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, DrawingToolRequestor, java.util.EventListener, GestureResponsePolicy, java.awt.image.ImageObserver, java.awt.MenuContainer, ProjectionListener, ProjectionPainter, PropertyConsumer, java.io.Serializable
Direct Known Subclasses:
EditorLayer

public class DrawingToolLayer
extends OMGraphicHandlerLayer
implements DrawingToolRequestor

This layer can receive graphics from the OMDrawingToolLauncher, and also sent it's graphics to the OMDrawingTool for editing.

The projectionChanged() and paint() methods are taken care of in the OMGraphicHandlerLayer superclass.

This class responds to all the properties that the OMGraphicHandlerLayer repsonds to, including the mouseModes property. If the mouseModes property isn't set, the SelectMouseMode.modeID mode ID is set. When the MapMouseInterpreter calls select(OMGraphic), the OMGraphic is passed to the DrawingTool. This class also responds to the showHints property (true by default), which dictates if tooltips and information delegator text is displayed when the layer's contents are moused over.

See Also:
Serialized Form

Field Summary
protected  OMDrawingTool drawingTool
          Get a handle on the DrawingTool.
protected  boolean DTL_DEBUG
           
protected  MapMouseMode proxyMMM
           
protected  boolean showHints
          A flag to provide a tooltip over OMGraphics to click to edit.
static java.lang.String ShowHintsProperty
           
 
Fields inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
cancelled, CANCELLED_LOCK, consumeEvents, ConsumeEventsProperty, filter, layerWorker, LAYERWORKER_LOCK, mouseEventInterpreter, mouseModeIDs, MouseModesProperty, projectionChangePolicy, ProjectionChangePolicyProperty, renderPolicy, RenderPolicyProperty, selectedList
 
Fields inherited from class com.bbn.openmap.Layer
addAsBackground, AddAsBackgroundProperty, addToBeanContext, AddToBeanContextProperty, autoPalette, AutoPaletteProperty, beanContextChildSupport, DisplayPaletteCmd, DisplayPropertiesCmd, doHack, HidePaletteCmd, i18n, IDListeners, localHackList, lsListeners, palette, paletteListener, PrettyNameProperty, propertyPrefix, RedrawCmd, removable, RemovableProperty, RemoveableProperty, 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
DrawingToolLayer()
           
 
Method Summary
 void drawingComplete(OMGraphic omg, OMAction action)
          DrawingToolRequestor method.
 void edit(OMGraphic omg)
           
 void findAndInit(java.lang.Object someObj)
          Called by findAndInit(Iterator) so subclasses can find objects, too.
 void findAndUndo(java.lang.Object someObj)
          BeanContextMembershipListener method.
 OMDrawingTool getDrawingTool()
           
 java.awt.Component getGUI()
          Gets the gui controls associated with the layer.
 java.lang.String getInfoText(OMGraphic omg)
          Query for what text should be placed over the information bar when the mouse is over a particular OMGraphic.
protected  MapMouseMode getProxyMouseMode()
          Get the ProxyMouseMode for the internal drawing tool, if there is one.
 boolean getShowHints()
           
 java.lang.String getToolTipTextFor(OMGraphic omgr)
          Query for what tooltip to display for an OMGraphic when the mouse is over it.
 boolean isHighlightable(OMGraphic omg)
          Query that an OMGraphic can be highlighted when the mouse moves over it.
 boolean isSelectable(OMGraphic omg)
          Query that an OMGraphic is selectable.
 void releaseProxyMouseMode()
          If the DrawingToolLayer is using a hidden OMDrawingTool, release the proxy lock on the active MapMouseMode.
 void select(OMGraphicList omgl)
          GestureResponsePolicy method.
 void setDrawingTool(OMDrawingTool dt)
           
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Overrides the Layer setProperties method.
protected  void setProxyMouseMode(MapMouseMode mmm)
          Set the ProxyMouseMode for the internal drawing tool, if there is one.
 void setShowHints(boolean show)
          A flag to provide a tooltip over OMGraphics to click to edit.
 boolean shouldEdit(OMGraphic omgr)
          A method called from within different MapMouseListener methods to check whether an OMGraphic *should* be edited if the OMDrawingTool is able to edit it.
 
Methods inherited from class com.bbn.openmap.layer.OMGraphicHandlerLayer
canSetList, copy, cut, deselect, doAction, doPrepare, filter, filter, filter, getConsumeEvents, getFilter, getItemsForMapMenu, getItemsForOMGraphicMenu, getLayerWorker, getList, getMapMouseListener, getMouseEventInterpreter, getMouseModeIDsForEvents, getProjectionChangePolicy, getProperties, getPropertyInfo, getRenderPolicy, getSelected, highlight, interrupt, isCancelled, isWorking, leftClick, mouseOver, paint, paste, prepare, projectionChanged, receivesMapEvents, renderDataForProjection, resetFiltering, setCancelled, setConsumeEvents, setFilter, setLayerWorker, setList, setMouseEventInterpreter, setMouseModeIDsForEvents, setProjectionChangePolicy, setRenderPolicy, supportsSQL, unhighlight, workerComplete
 
Methods inherited from class com.bbn.openmap.Layer
actionPerformed, addComponentListener, added, addInfoDisplayListener, addLayerStatusListener, addMouseListener, addVetoableChangeListener, childrenAdded, childrenRemoved, clearListeners, connectToBeanContext, createWindowSupport, finalize, findAndInit, fireHideToolTip, fireHideToolTip, firePaletteEvent, fireRequestBrowserContent, fireRequestBrowserContent, fireRequestCursor, fireRequestInfoLine, fireRequestInfoLine, fireRequestInfoLine, fireRequestMessage, fireRequestMessage, fireRequestToolTip, fireRequestToolTip, fireRequestToolTip, fireRequestToolTip, fireRequestURL, fireRequestURL, fireStatusUpdate, fireStatusUpdate, fireVetoableChange, getAddAsBackground, getAddToBeanContext, getBeanContext, getPackage, getPalette, getProjection, getPropertyPrefix, getWindowSupport, hidePalette, isRemovable, isRemoveable, notifyHideHack, removeComponentListener, removeConfirmed, removed, removeInfoDisplayListener, removeLayerStatusListener, removeVetoableChangeListener, repaint, resetPalette, setAddAsBackground, setAddToBeanContext, setBeanContext, setName, setPaletteVisible, setProjection, setProjection, setProperties, setPropertyPrefix, setRemovable, setRemoveable, 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.tools.drawing.DrawingToolRequestor
getName
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

drawingTool

protected OMDrawingTool drawingTool
Get a handle on the DrawingTool.


showHints

protected boolean showHints
A flag to provide a tooltip over OMGraphics to click to edit.


ShowHintsProperty

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

DTL_DEBUG

protected boolean DTL_DEBUG

proxyMMM

protected MapMouseMode proxyMMM
Constructor Detail

DrawingToolLayer

public DrawingToolLayer()
Method Detail

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Description copied from class: OMGraphicHandlerLayer
Overrides the Layer setProperties method. Also calls Layer's version. If the ProjectionChangePolicy and RenderPolicy objects are set programmatically and are PropertyConsumers, they will still have access to properties if this method is called. Their property prefix will be scoped as if the OMGraphicHandlerLayer had them created, with their prefix being prefix + . + PropertyChangePolicyProperty and prefix + . + RenderPolicyProperty.

Specified by:
setProperties in interface PropertyConsumer
Overrides:
setProperties in class OMGraphicHandlerLayer
Parameters:
prefix - the token to prefix the property names
props - the Properties object

getDrawingTool

public OMDrawingTool getDrawingTool()

setDrawingTool

public void setDrawingTool(OMDrawingTool dt)

drawingComplete

public void drawingComplete(OMGraphic omg,
                            OMAction action)
DrawingToolRequestor method.

Specified by:
drawingComplete in interface DrawingToolRequestor

releaseProxyMouseMode

public void releaseProxyMouseMode()
If the DrawingToolLayer is using a hidden OMDrawingTool, release the proxy lock on the active MapMouseMode.


findAndInit

public void findAndInit(java.lang.Object someObj)
Called by findAndInit(Iterator) so subclasses can find objects, too.

Overrides:
findAndInit in class Layer

findAndUndo

public void findAndUndo(java.lang.Object someObj)
BeanContextMembershipListener method. Called when a new object is removed from the BeanContext of this object.

Overrides:
findAndUndo in class Layer

setProxyMouseMode

protected void setProxyMouseMode(MapMouseMode mmm)
Set the ProxyMouseMode for the internal drawing tool, if there is one. Can be null. Used to reset the mouse mode when drawing's complete.


getProxyMouseMode

protected MapMouseMode getProxyMouseMode()
Get the ProxyMouseMode for the internal drawing tool, if there is one. May be null. Used to reset the mouse mode when drawing's complete.


shouldEdit

public boolean shouldEdit(OMGraphic omgr)
A method called from within different MapMouseListener methods to check whether an OMGraphic *should* be edited if the OMDrawingTool is able to edit it. Can be used by subclasses to delineate between OMGraphics that are non-relocatable versus those that can be moved. This method should work together with the getToolTipForOMGraphic() method so that OMGraphics that shouldn't be edited don't provide tooltips that suggest that they can be.

By default, this method always returns true because the DrawingToolLayer always thinks the OMGraphic should be edited.


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

setShowHints

public void setShowHints(boolean show)
A flag to provide a tooltip over OMGraphics to click to edit.


getShowHints

public boolean getShowHints()

isHighlightable

public boolean isHighlightable(OMGraphic omg)
Query that an OMGraphic can be highlighted when the mouse moves over it. If the answer is true, then highlight with this OMGraphics will be called, in addition to getInfoText() and getToolTipTextFor()

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

isSelectable

public boolean isSelectable(OMGraphic omg)
Query that an OMGraphic is selectable.

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

getInfoText

public java.lang.String getInfoText(OMGraphic omg)
Query for what text should be placed over the information bar when the mouse is over a particular OMGraphic.

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

getToolTipTextFor

public java.lang.String getToolTipTextFor(OMGraphic omgr)
Query for what tooltip to display for an OMGraphic when the mouse is over it.

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

select

public void select(OMGraphicList omgl)
GestureResponsePolicy method.

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

edit

public void edit(OMGraphic omg)


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