com.bbn.openmap.tools.drawing
Class OMDrawingToolLauncher

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.bbn.openmap.gui.OMComponentPanel
                      extended by com.bbn.openmap.gui.OMToolComponent
                          extended by com.bbn.openmap.tools.drawing.OMDrawingToolLauncher
All Implemented Interfaces:
Tool, LightMapHandlerChild, PropertyConsumer, java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

public class OMDrawingToolLauncher
extends OMToolComponent
implements java.awt.event.ActionListener, java.beans.PropertyChangeListener

This tool is a widget that calls the OMDrawingTool to create a specific graphic. The launcher is completely configured by EditToolLaunchers it gets told about from the DrawingTool, and OMGraphicHandlers that it finds in a MapHandler. There are no methods to manually add stuff to this GUI.

There are two properties that can be set for the launcher:

 
 
 
 
       # Number of launcher buttons to place in a row in that part of the
       # GUI. -1 (the default) is to keep them all on one line.
       omdtl.horizNumLoaderButtons=-1
 
       # If set to true, a text popup will be used for the OMGraphic
       # loaders instead of buttons (false is default).
       omdtl.useTextLabels=false
 
 
 
 

See Also:
Serialized Form

Nested Class Summary
static class OMDrawingToolLauncher.LoaderHolder
           
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected  javax.swing.JButton createButton
           
static java.lang.String CreateCmd
           
protected  java.lang.String currentCreation
           
protected  DrawingToolRequestor currentRequestor
           
protected  GraphicAttributes defaultGraphicAttributes
           
static java.lang.String defaultKey
          Default key for the DrawingToolLauncher Tool.
protected  DrawingTool drawingTool
           
protected  java.util.Vector<DrawingToolRequestor> drawingToolRequestors
           
static java.lang.String HorizontalNumberOfLoaderButtonsProperty
          Property for setting the maximum number of loader buttons to allow in the horizontal direction in the GUI (horizNumLoaderButtons).
protected  java.util.Vector<OMDrawingToolLauncher.LoaderHolder> loaders
           
 int maxHorNumLoaderButtons
           
protected  javax.swing.JPanel panel3
           
protected  javax.swing.JComboBox requestors
           
static java.lang.String UseLoaderTextProperty
           
protected  boolean useTextEditToolTitles
           
 
Fields inherited from class com.bbn.openmap.gui.OMToolComponent
c, gridbag, key, useAsTool, UseAsToolProperty
 
Fields inherited from class com.bbn.openmap.gui.OMComponentPanel
beanContextChildSupport, i18n, isolated, orientation, propertyPrefix, 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
OMDrawingToolLauncher()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
           
 void addLoader(EditToolLoader etl)
           
 void findAndInit(java.lang.Object someObj)
          This is the method that your object can use to find other objects within the MapHandler (BeanContext).
 void findAndUndo(java.lang.Object someObj)
          BeanContextMembershipListener method.
 java.awt.event.ActionListener getActionListener()
          Get the ActionListener that triggers the LauncherPanel.
 GraphicAttributes getDefaultGraphicAttributes()
          Get the attributes that initialize the graphic.
 DrawingTool getDrawingTool()
           
 java.lang.String getEditableClassName(java.lang.String prettyName)
          Given a pretty name, look through the EditToolLoaders and find out the classname that goes with editing it.
 java.awt.Container getFace()
          Tool interface method.
 java.util.Iterator<OMDrawingToolLauncher.LoaderHolder> getLoaders()
          Returns an iterator of LoaderHolders.
 java.util.Properties getProperties(java.util.Properties props)
          PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent.
 java.util.Properties getPropertyInfo(java.util.Properties props)
          Method to fill in a Properties object with values reflecting the properties able to be set on this PropertyConsumer.
protected  javax.swing.JComponent getToolWidgets()
           
protected  javax.swing.JComponent getToolWidgets(boolean useText)
           
 void propertyChange(java.beans.PropertyChangeEvent pce)
          PropertyChangeListener method, to listen for the OMDrawingTool's list of loaders that may or may not change.
 void removeLoader(EditToolLoader etl)
           
 void resetGUI()
          Build the stuff that goes in the launcher.
 void setCurrentCreation(java.lang.String name)
          Set the next thing to be created to be whatever the pretty name represents.
 void setCurrentRequestor(java.lang.String name)
          Set the component that will receive the new/edited OMGraphic from the DrawingTool.
 void setDefaultGraphicAttributes(GraphicAttributes ga)
          Set the attributes that initialize the graphic.
 void setDrawingTool(DrawingTool dt)
          Set the DrawingTool for this launcher.
 void setLoaders(java.util.Iterator<EditToolLoader> iterator)
          Set the loaders with an Iterator containing EditToolLoaders.
 void setProperties(java.lang.String prefix, java.util.Properties props)
          Sets the properties for the OMComponent.
 void setRequestor(java.lang.String aName)
          Set the current requestor to receive a requested OMGraphic.
protected  void updateDrawingAttributesGUI()
           
 
Methods inherited from class com.bbn.openmap.gui.OMToolComponent
add, createLayout, getGridBagConstraints, getKey, getUseAsTool, setKey, setUseAsTool
 
Methods inherited from class com.bbn.openmap.gui.OMComponentPanel
addVetoableChangeListener, childrenAdded, childrenRemoved, findAndInit, fireVetoableChange, getBeanContext, getOrientation, getPropertyPrefix, getWindowSupport, isIsolated, removeVetoableChangeListener, setBeanContext, setIsolated, setOrientation, setProperties, setPropertyPrefix, setWindowSupport
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.bbn.openmap.gui.Tool
getOrientation, setOrientation
 
Methods inherited from interface java.beans.beancontext.BeanContextChild
addPropertyChangeListener, removePropertyChangeListener
 

Field Detail

drawingTool

protected DrawingTool drawingTool

useTextEditToolTitles

protected boolean useTextEditToolTitles

defaultGraphicAttributes

protected GraphicAttributes defaultGraphicAttributes

maxHorNumLoaderButtons

public int maxHorNumLoaderButtons

loaders

protected java.util.Vector<OMDrawingToolLauncher.LoaderHolder> loaders

drawingToolRequestors

protected java.util.Vector<DrawingToolRequestor> drawingToolRequestors

currentRequestor

protected DrawingToolRequestor currentRequestor

currentCreation

protected java.lang.String currentCreation

requestors

protected javax.swing.JComboBox requestors

createButton

protected javax.swing.JButton createButton

panel3

protected javax.swing.JPanel panel3

HorizontalNumberOfLoaderButtonsProperty

public static final java.lang.String HorizontalNumberOfLoaderButtonsProperty
Property for setting the maximum number of loader buttons to allow in the horizontal direction in the GUI (horizNumLoaderButtons). -1 means to just lay them out in one row.

See Also:
Constant Field Values

UseLoaderTextProperty

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

CreateCmd

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

defaultKey

public static final java.lang.String defaultKey
Default key for the DrawingToolLauncher Tool.

See Also:
Constant Field Values
Constructor Detail

OMDrawingToolLauncher

public OMDrawingToolLauncher()
Method Detail

setDrawingTool

public void setDrawingTool(DrawingTool dt)
Set the DrawingTool for this launcher.


getDrawingTool

public DrawingTool getDrawingTool()

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

setRequestor

public void setRequestor(java.lang.String aName)
Set the current requestor to receive a requested OMGraphic. Changes are reflected in the GUI, and setCurrentRequestor() will eventually be called.


resetGUI

public void resetGUI()
Build the stuff that goes in the launcher.


updateDrawingAttributesGUI

protected void updateDrawingAttributesGUI()

getToolWidgets

protected javax.swing.JComponent getToolWidgets()

getToolWidgets

protected javax.swing.JComponent getToolWidgets(boolean useText)

setCurrentRequestor

public void setCurrentRequestor(java.lang.String name)
Set the component that will receive the new/edited OMGraphic from the DrawingTool. Does not change the GUI. Called when the combo box changes.

Parameters:
name - GUI pretty name of requestor.

setCurrentCreation

public void setCurrentCreation(java.lang.String name)
Set the next thing to be created to be whatever the pretty name represents. Sets currentCreation.

Parameters:
name - GUI pretty name of thing to be created, from one of the EditToolLoaders.

getEditableClassName

public java.lang.String getEditableClassName(java.lang.String prettyName)
Given a pretty name, look through the EditToolLoaders and find out the classname that goes with editing it.

Parameters:
prettyName - GUI pretty name of tool, or thing to be created, from one of the EditToolLoaders.

findAndInit

public void findAndInit(java.lang.Object someObj)
This is the method that your object can use to find other objects within the MapHandler (BeanContext). This method gets called when the object gets added to the MapHandler, or when another object gets added to the MapHandler after the object is a member.

Specified by:
findAndInit in interface LightMapHandlerChild
Overrides:
findAndInit in class OMComponentPanel
Parameters:
someObj - the object that was added to the BeanContext (MapHandler) that is being searched for. Find the ones you need, and hook yourself up.

findAndUndo

public void findAndUndo(java.lang.Object someObj)
BeanContextMembershipListener method. Called when a new object is removed from the BeanContext of this object. For the Layer, this method doesn't do anything. If your layer does something with the childrenAdded method, or findAndInit, you should take steps in this method to unhook the layer from the object used in those methods.

Specified by:
findAndUndo in interface LightMapHandlerChild
Overrides:
findAndUndo in class OMComponentPanel

getFace

public java.awt.Container getFace()
Tool interface method. The retrieval tool's interface. This method creates a button that will bring up the LauncherPanel.

Specified by:
getFace in interface Tool
Overrides:
getFace in class OMToolComponent
Returns:
String The key for this tool.

getActionListener

public java.awt.event.ActionListener getActionListener()
Get the ActionListener that triggers the LauncherPanel. Useful to have to provide an alternative way to bring up the LauncherPanel.

Returns:
ActionListener

getDefaultGraphicAttributes

public GraphicAttributes getDefaultGraphicAttributes()
Get the attributes that initialize the graphic.


setDefaultGraphicAttributes

public void setDefaultGraphicAttributes(GraphicAttributes ga)
Set the attributes that initialize the graphic.


setLoaders

public void setLoaders(java.util.Iterator<EditToolLoader> iterator)
Set the loaders with an Iterator containing EditToolLoaders.


getLoaders

public java.util.Iterator<OMDrawingToolLauncher.LoaderHolder> getLoaders()
Returns an iterator of LoaderHolders.


addLoader

public void addLoader(EditToolLoader etl)

removeLoader

public void removeLoader(EditToolLoader etl)

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent pce)
PropertyChangeListener method, to listen for the OMDrawingTool's list of loaders that may or may not change.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener

setProperties

public void setProperties(java.lang.String prefix,
                          java.util.Properties props)
Description copied from class: OMComponentPanel
Sets the properties for the OMComponent.

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

getProperties

public java.util.Properties getProperties(java.util.Properties props)
Description copied from class: OMComponentPanel
PropertyConsumer method, to fill in a Properties object, reflecting the current values of the OMComponent. If the component has a propertyPrefix set, the property keys should have that prefix plus a separating '.' prepended to each property key it uses for configuration.

Specified by:
getProperties in interface PropertyConsumer
Overrides:
getProperties in class OMToolComponent
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.

getPropertyInfo

public java.util.Properties getPropertyInfo(java.util.Properties props)
Description copied from class: OMComponentPanel
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.). For Layer, this method should at least return the 'prettyName' property.

Specified by:
getPropertyInfo in interface PropertyConsumer
Overrides:
getPropertyInfo in class OMToolComponent
Parameters:
props - 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.


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