## com.bbn.openmap.tools.drawing
Class OMDrawingToolLauncher

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      com.bbn.openmap.gui.OMComponentPanel
                          com.bbn.openmap.gui.OMToolComponent
                              com.bbn.openmap.tools.drawing.OMDrawingToolLauncher

All Implemented Interfaces:
  javax.accessibility.Accessible, java.awt.event.ActionListener, java.beans.beancontext.BeanContextChild, java.beans.beancontext.BeanContextMembershipListener, java.util.EventListener, java.awt.image.ImageObserver, LightMapHandlerChild, java.awt.MenuContainer, java.beans.PropertyChangeListener, PropertyConsumer, java.io.Serializable, Tool

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 inherited from class javax.swing.JPanel
`javax.swing.JPanel.AccessibleJPanel`

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
`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` `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 I18n` `i18n`
`protected java.util.Vector` `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, 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 initalize 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` `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 initalize the graphic.
`void` `setDrawingTool(DrawingTool dt)` Set the DrawingTool for this launcher.
`void` `setLoaders(java.util.Iterator 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, getPropertyPrefix, getWindowSupport, removeVetoableChangeListener, setBeanContext, 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, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, 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, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container

`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, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, 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, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, 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 java.beans.beancontext.BeanContextChild
`addPropertyChangeListener, removePropertyChangeListener`

Field Detail

### i18n

    protected I18n i18n

### drawingTool

    protected DrawingTool drawingTool

### useTextEditToolTitles

    protected boolean useTextEditToolTitles

### defaultGraphicAttributes

    protected GraphicAttributes defaultGraphicAttributes

### maxHorNumLoaderButtons

    public int maxHorNumLoaderButtons

### loaders

    protected java.util.Vector loaders

### drawingToolRequestors

    protected java.util.Vector drawingToolRequestors

### currentRequestor

    protected DrawingToolRequestor currentRequestor

### currentCreation

    protected java.lang.String currentCreation

### requestors

    protected javax.swing.JComboBox requestors

### 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 initalize the graphic.

### setDefaultGraphicAttributes

    public void setDefaultGraphicAttributes(GraphicAttributes ga)

  Set the attributes that initalize the graphic.

### setLoaders

    public void setLoaders(java.util.Iterator iterator)

  Set the loaders with an Iterator containing EditToolLoaders.

### getLoaders

    public java.util.Iterator 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`

### 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 propery key it uses for configuration.

  Specified by:
    `getProperties` in interface `PropertyConsumer`
  Overrides:
    `getProperties` in class `OMToolComponent`

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

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