jmri.jmrit.display
Class IconAdder

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 jmri.jmrit.display.IconAdder
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ListSelectionListener
Direct Known Subclasses:
MultiSensorIconAdder, SlipIconAdder

public class IconAdder
extends JPanel
implements ListSelectionListener

Provides a simple editor for selecting N NamedIcons. Class for Icon Editors implements "Drag n Drop". Allows drops from icons dragged from a Catalog preview pane.

See SensorIcon for an item that might want to have that type of information, and PanelEditor for an example of how to use this.

Author:
Pete Cressman Copyright (c) 2009, 2010
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static ResourceBundle rb
           
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
IconAdder()
           
IconAdder(boolean allowDeletes)
           
IconAdder(String type)
           
 
Method Summary
protected  void addAdditionalButtons(JPanel p)
           
 void addCatalog()
           
 void addDirectoryToCatalog(File dir)
           
 boolean addIconIsEnabled()
           
 void addTreeToCatalog(CatalogTree tree)
           
 void complete(ActionListener addIconAction, boolean changeIcon, boolean addToTable, boolean update)
           
 void dispose()
          Clean up when its time to make it all go away
protected  void doIconPanel()
           
 CatalogTreeNode getDefaultIconNode()
           
 CatalogTreeNode getDefaultIconNodeFromMap()
           
 NamedIcon getIcon(String key)
          Returns a new NamedIcon object for your own use.
 Hashtable<String,NamedIcon> getIconMap()
          Returns a new Hashtable of only the icons selected for display.
 int getNumIcons()
           
 NamedBean getTableSelection()
          Used by Panel Editor to make the final installation of the icon(s) into the user's Panel.
 void initDefaultIcons()
           
 void makeIconPanel(boolean useDefaults)
          After all the calls to setIcon(...) are made, make the icon display.
 void reset()
           
protected  void setIcon(int order, String label, NamedIcon icon)
           
 void setIcon(int order, String label, String name)
          install the icons used to represent all the states of the entity being edited
 void setParent(JFrame parent)
           
 void setPickList(PickListModel tableModel)
          After the calls to makeIconPanel(), optionally.
 void setSelection(NamedBean bean)
           
 void valueChanged(ListSelectionEvent e)
          When a Pick list is installed, table selection controls the Add button
 
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, fireVetoableChange, 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, 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
 

Field Detail

rb

public static final ResourceBundle rb
Constructor Detail

IconAdder

public IconAdder()

IconAdder

public IconAdder(boolean allowDeletes)

IconAdder

public IconAdder(String type)
Method Detail

reset

public void reset()

initDefaultIcons

public void initDefaultIcons()

getDefaultIconNodeFromMap

public CatalogTreeNode getDefaultIconNodeFromMap()

getDefaultIconNode

public CatalogTreeNode getDefaultIconNode()

setIcon

protected void setIcon(int order,
                       String label,
                       NamedIcon icon)
Parameters:
order - -the index to Sensor's name and the inverse order that icons are drawn in doIconPanel()
label - -the Sensor's name displayed in the icon panel and the key to the icon button in _iconMap
icon - -the icon displayed in the icon button

setIcon

public void setIcon(int order,
                    String label,
                    String name)
install the icons used to represent all the states of the entity being edited

Parameters:
label - - the state name to display, Must be unique from all other calls to this method.
name - - the resource name of the icon image to displa
order - - (reverse) order of display, (0 last, to N first)

setParent

public void setParent(JFrame parent)

getNumIcons

public int getNumIcons()

makeIconPanel

public void makeIconPanel(boolean useDefaults)
After all the calls to setIcon(...) are made, make the icon display. Two columns to save space for subsequent panels.


doIconPanel

protected void doIconPanel()

setPickList

public void setPickList(PickListModel tableModel)
After the calls to makeIconPanel(), optionally. make a pick list table for managed elements. (Not all Icon Editors use pick lists)


setSelection

public void setSelection(NamedBean bean)

valueChanged

public void valueChanged(ListSelectionEvent e)
When a Pick list is installed, table selection controls the Add button

Specified by:
valueChanged in interface ListSelectionListener

getTableSelection

public NamedBean getTableSelection()
Used by Panel Editor to make the final installation of the icon(s) into the user's Panel.

Note! the selection is cleared. When two successive calls are made, the 2nd will always return null, regardless of the 1st return.


getIcon

public NamedIcon getIcon(String key)
Returns a new NamedIcon object for your own use.

Parameters:
key - Name of key (label)
Returns:
Unique object

getIconMap

public Hashtable<String,NamedIcon> getIconMap()
Returns a new Hashtable of only the icons selected for display.


complete

public void complete(ActionListener addIconAction,
                     boolean changeIcon,
                     boolean addToTable,
                     boolean update)

addAdditionalButtons

protected void addAdditionalButtons(JPanel p)

addIconIsEnabled

public boolean addIconIsEnabled()

addCatalog

public void addCatalog()

addDirectoryToCatalog

public void addDirectoryToCatalog(File dir)

addTreeToCatalog

public void addTreeToCatalog(CatalogTree tree)

dispose

public void dispose()
Clean up when its time to make it all go away



Copyright © 1997 - 2011 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads