jmri.jmrit.display
Class LayoutSignalHeadIcon

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JLabel
                  extended by jmri.jmrit.display.LayoutPositionableLabel
                      extended by jmri.jmrit.display.LayoutSignalHeadIcon
All Implemented Interfaces:
MouseListener, MouseMotionListener, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible, SwingConstants, Positionable

public class LayoutSignalHeadIcon
extends LayoutPositionableLabel
implements PropertyChangeListener

This module provides an icon to display a status of a SignalHead on a LayoutEditor panel. This routine was copied from SignalHeadIcon.java, written by Bob Jacobsen, with only minor changes. The main differences are related to the hard interdependence between SignalHeadIconXml.java and PanelEditor.java, which made it very hard to use SignalHeadIcon.java directly with LayoutEditor without risking trouble for existing Panel Editor panels. Rectifying these differences is especially important when storing and loading a saved panel. That said, this module is linked to LayoutEditor.

This module has also been modified to use a resources bundle for its user-seen text as other LayoutEditor modules do.

SignalHeads are located via the SignalHeadManager, which in turn is located via the InstanceManager.

Author:
David J. Duchamp Copyright (C) 2007
See Also:
SignalHeadManager, InstanceManager, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JLabel
JLabel.AccessibleJLabel
 
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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  int clickMode
          What to do on click?
protected  boolean litMode
          How to handle lit vs not lit?
 
Fields inherited from class jmri.jmrit.display.LayoutPositionableLabel
layoutPanel
 
Fields inherited from class javax.swing.JLabel
labelFor
 
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
LayoutSignalHeadIcon()
           
 
Method Summary
 void displayState(int state)
          Drive the current state of the display from the state of the underlying SignalHead object.
 void dispose()
          Clean up when this object is no longer needed.
 int getClickMode()
           
 NamedIcon getDarkIcon()
           
 NamedIcon getFlashGreenIcon()
           
 NamedIcon getFlashRedIcon()
           
 NamedIcon getFlashYellowIcon()
           
 NamedIcon getGreenIcon()
           
 NamedIcon getHeldIcon()
           
 boolean getLitMode()
           
 NamedIcon getRedIcon()
           
 SignalHead getSignalHead()
           
 NamedIcon getYellowIcon()
           
 int headState()
          Get current appearance of the head
protected  int maxHeight()
           
protected  int maxWidth()
           
 void mouseClicked(MouseEvent e)
          Change the SignalHead state when the icon is clicked.
 void propertyChange(PropertyChangeEvent e)
           
 void setClickMode(int mode)
           
 void setDarkIcon(NamedIcon i)
           
 void setFlashGreenIcon(NamedIcon i)
           
 void setFlashRedIcon(NamedIcon i)
           
 void setFlashYellowIcon(NamedIcon i)
           
 void setGreenIcon(NamedIcon i)
           
 void setHeldIcon(NamedIcon i)
           
 void setLitMode(boolean mode)
           
 void setProperToolTip()
           
 void setRedIcon(NamedIcon i)
           
 void setSignalHead(String pName)
          Attached a numbered element to this display item
 void setYellowIcon(NamedIcon i)
           
protected  void showPopUp(MouseEvent e)
          Pop-up just displays the name
 
Methods inherited from class jmri.jmrit.display.LayoutPositionableLabel
connect, displayCoordinateEdit, getControlling, getDisplayLevel, getEditable, getFixed, getForceControlOff, getPositionable, getShowTooltip, getViewCoordinates, isActive, isBackground, isIcon, isText, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, newStyleMenuItem, setControlling, setDisplayLevel, setDisplayLevel, setEditable, setFixed, setFontSize, setFontStyle, setForceControlOff, setPanel, setPositionable, setShowTooltip, setViewCoordinates, updateSize
 
Methods inherited from class javax.swing.JLabel
checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition, 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, 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, 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, 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

clickMode

protected int clickMode
What to do on click? 0 means sequence through aspects; 1 means alternate the "lit" aspect; 2 means alternate the "held" aspect.


litMode

protected boolean litMode
How to handle lit vs not lit?

False means ignore (always show R/Y/G/etc appearance on screen); True means show "dark" if lit is set false.

Note that setting the appearance "DARK" explicitly will show the dark icon regardless of how this is set.

Constructor Detail

LayoutSignalHeadIcon

public LayoutSignalHeadIcon()
Method Detail

setSignalHead

public void setSignalHead(String pName)
Attached a numbered element to this display item

Parameters:
pName - Used as a system/user name to lookup the SignalHead object

getSignalHead

public SignalHead getSignalHead()

getHeldIcon

public NamedIcon getHeldIcon()

setHeldIcon

public void setHeldIcon(NamedIcon i)

getDarkIcon

public NamedIcon getDarkIcon()

setDarkIcon

public void setDarkIcon(NamedIcon i)

getRedIcon

public NamedIcon getRedIcon()

setRedIcon

public void setRedIcon(NamedIcon i)

getFlashRedIcon

public NamedIcon getFlashRedIcon()

setFlashRedIcon

public void setFlashRedIcon(NamedIcon i)

getYellowIcon

public NamedIcon getYellowIcon()

setYellowIcon

public void setYellowIcon(NamedIcon i)

getFlashYellowIcon

public NamedIcon getFlashYellowIcon()

setFlashYellowIcon

public void setFlashYellowIcon(NamedIcon i)

getGreenIcon

public NamedIcon getGreenIcon()

setGreenIcon

public void setGreenIcon(NamedIcon i)

getFlashGreenIcon

public NamedIcon getFlashGreenIcon()

setFlashGreenIcon

public void setFlashGreenIcon(NamedIcon i)

maxHeight

protected int maxHeight()
Overrides:
maxHeight in class LayoutPositionableLabel

maxWidth

protected int maxWidth()
Overrides:
maxWidth in class LayoutPositionableLabel

headState

public int headState()
Get current appearance of the head

Returns:
An appearance variable from a SignalHead, e.g. SignalHead.RED

propertyChange

public void propertyChange(PropertyChangeEvent e)
Specified by:
propertyChange in interface PropertyChangeListener

setProperToolTip

public void setProperToolTip()
Overrides:
setProperToolTip in class LayoutPositionableLabel

showPopUp

protected void showPopUp(MouseEvent e)
Pop-up just displays the name

Overrides:
showPopUp in class LayoutPositionableLabel

displayState

public void displayState(int state)
Drive the current state of the display from the state of the underlying SignalHead object.


setClickMode

public void setClickMode(int mode)

getClickMode

public int getClickMode()

setLitMode

public void setLitMode(boolean mode)

getLitMode

public boolean getLitMode()

mouseClicked

public void mouseClicked(MouseEvent e)
Change the SignalHead state when the icon is clicked. Note that this change may not be permanent if there is logic controlling the signal head.

Specified by:
mouseClicked in interface MouseListener
Overrides:
mouseClicked in class LayoutPositionableLabel
Parameters:
e -

dispose

public void dispose()
Description copied from class: LayoutPositionableLabel
Clean up when this object is no longer needed. Should not be called while the object is still displayed; see remove()



Copyright © 1997 - 2008 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: SourceForge_Logo