Class TurnoutIcon
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLabel
-
- jmri.jmrit.display.PositionableLabel
-
- jmri.jmrit.display.PositionableIcon
-
- jmri.jmrit.display.TurnoutIcon
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.beans.PropertyChangeListener
,java.io.Serializable
,java.lang.Cloneable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.SwingConstants
,Positionable
,InlineLogixNG
- Direct Known Subclasses:
IndicatorTurnoutIcon
public class TurnoutIcon extends PositionableIcon implements java.beans.PropertyChangeListener
An icon to display a status of a turnout.This responds to only KnownState, leaving CommandedState to some other graphic representation later.
A click on the icon will command a state change. Specifically, it will set the CommandedState to the opposite (THROWN vs CLOSED) of the current KnownState.
The default icons are for a left-handed turnout, facing point for east-bound traffic.
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class jmri.jmrit.display.PositionableLabel
PositionableLabel.PaletteFrameCloser
-
Nested classes/interfaces inherited from class javax.swing.JLabel
javax.swing.JLabel.AccessibleJLabel
-
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
-
Nested classes/interfaces inherited from interface jmri.jmrit.display.Positionable
Positionable.DuplicateIdException
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.HashMap<java.lang.Integer,NamedIcon>
_iconStateMap
(package private) TableItemPanel<Turnout>
_itemPanel
protected java.util.HashMap<java.lang.String,java.lang.Integer>
_name2stateMap
protected java.util.HashMap<java.lang.Integer,java.lang.String>
_state2nameMap
(package private) boolean
directControl
(package private) javax.swing.JCheckBoxMenuItem
directControlItem
(package private) boolean
momentary
(package private) javax.swing.JCheckBoxMenuItem
momentaryItem
(package private) javax.swing.JCheckBoxMenuItem
tristateItem
-
Fields inherited from class jmri.jmrit.display.PositionableIcon
_iconFamily, _iconMap, _rotate, _scale
-
Fields inherited from class jmri.jmrit.display.PositionableLabel
_control, _controlling, _displayLevel, _editable, _editor, _emptyHidden, _hidden, _icon, _iconEditor, _iconEditorFrame, _iconItemPanel, _namedIcon, _paletteFrame, _popupUtil, _positionable, _rotateText, _showTooltip, _text, _tooltip, _unRotatedText, _valueEditDisabled, _viewCoordinates, active, disableItem
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description TurnoutIcon(Editor editor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addTristateEntry(javax.swing.JPopupMenu popup)
(package private) void
alternateOnClick()
boolean
buttonLive()
protected java.util.HashMap<java.lang.Integer,NamedIcon>
cloneMap(java.util.HashMap<java.lang.Integer,NamedIcon> map, TurnoutIcon pos)
Positionable
deepClone()
Make a deep copy of Positional object.void
displayState(int state)
Drive the current state of the display from the state of the turnout.void
dispose()
Clean up when this object is no longer needed.void
doMouseClicked(JmriMouseEvent e)
void
doMousePressed(JmriMouseEvent e)
void
doMouseReleased(JmriMouseEvent e)
protected void
edit()
protected void
editItem()
protected Positionable
finishClone(TurnoutIcon pos)
boolean
getDirectControl()
NamedIcon
getIcon(int state)
NamedIcon
getIcon(java.lang.String state)
Get icon by its localized bean state name.boolean
getMomentary()
NamedBean
getNamedBean()
Provide a generic method to return the bean associated with the Positionable.NamedBeanHandle<Turnout>
getNamedTurnout()
java.lang.String
getNameString()
Get the name of the positional as a String.java.lang.String
getStateName(int state)
boolean
getTristate()
Turnout
getTurnout()
java.lang.String
getTypeString()
Get the type of the positional as a String.int
maxHeight()
int
maxWidth()
void
propertyChange(java.beans.PropertyChangeEvent e)
void
rotate(int deg)
protected void
rotateOrthogonal()
****** popup AbstractAction method overrides ********void
setDirectControl(boolean m)
boolean
setEditIconMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.boolean
setEditItemMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.void
setIcon(java.lang.String name, NamedIcon icon)
Place icon by its localized bean state name.void
setMomentary(boolean m)
void
setScale(double s)
void
setTristate(boolean set)
void
setTurnout(java.lang.String pName)
Attach a named turnout to this display item.void
setTurnout(NamedBeanHandle<Turnout> to)
boolean
showPopUp(javax.swing.JPopupMenu popup)
Pop-up displays unique attributes of turnouts(package private) int
turnoutState()
Get current state of attached turnout(package private) void
updateItem()
(package private) void
updateTurnout()
-
Methods inherited from class jmri.jmrit.display.PositionableIcon
cloneMap, finishClone, getFamily, getIconMap, getIconStateNames, getScale, getStateNameCollection, setFamily
-
Methods inherited from class jmri.jmrit.display.PositionableLabel
addClass, cloneIcon, doMouseDragged, doMouseEntered, doMouseExited, doMouseMoved, doViemMenu, editIcon, editIconItem, editTextItem, finishClone, finishItemUpdate, getClasses, getDegrees, getDisplayLevel, getEditor, getHeight, getId, getLogixNG, getPopupUtility, getSize, getTextComponent, getToolTip, getUnRotatedText, getViewCoordinates, getWidth, initPaletteFrame, isActive, isBackground, isControl, isControlling, isEditable, isEmptyHidden, isHidden, isIcon, isPositionable, isRotated, isText, isValueEditDisabled, makeIconEditorFrame, makePaletteFrame, makeTextOverlaidIcon, maxHeightTrue, maxWidthTrue, paintComponent, remove, removeAllClasses, removeClass, setControlling, setDegrees, setDisableControlMenu, setDisplayLevel, setEditable, setEditor, setEditTextItemMenu, setEmptyHidden, setHidden, setIcon, setId, setLevel, setLogixNG, setLogixNG_SystemName, setPopupUtility, setPositionable, setRotateMenu, setRotateOrthogonalMenu, setScaleMenu, setShowToolTip, setSuperText, setText, setTextEditMenu, setToolTip, setUnRotatedText, setupLogixNG, setValueEditDisabled, setViewCoordinates, showHidden, showToolTip, storeItem, updateIcon, updateSize, updateTextItem
-
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, 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, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jmri.jmrit.display.Positionable
contains, getBackground, getBounds, getEditorName, getFont, getForeground, getLocation, getParent, getPreferredSize, getTypeName, getX, getY, invalidate, isOpaque, repaint, requestFocusInWindow, setBackground, setBorder, setForeground, setLocation, setLocation, setOpaque, setSize, setVisible
-
-
-
-
Field Detail
-
_iconStateMap
protected java.util.HashMap<java.lang.Integer,NamedIcon> _iconStateMap
-
_name2stateMap
protected java.util.HashMap<java.lang.String,java.lang.Integer> _name2stateMap
-
_state2nameMap
protected java.util.HashMap<java.lang.Integer,java.lang.String> _state2nameMap
-
momentary
boolean momentary
-
directControl
boolean directControl
-
momentaryItem
javax.swing.JCheckBoxMenuItem momentaryItem
-
directControlItem
javax.swing.JCheckBoxMenuItem directControlItem
-
tristateItem
javax.swing.JCheckBoxMenuItem tristateItem
-
_itemPanel
TableItemPanel<Turnout> _itemPanel
-
-
Constructor Detail
-
TurnoutIcon
public TurnoutIcon(Editor editor)
-
-
Method Detail
-
deepClone
public Positionable deepClone()
Description copied from interface:Positionable
Make a deep copy of Positional object. Implementation should create a new object and immediately pass the object to finishClone() returning the result of finishClone(). i.e. implementation must be:public Positionable deepClone() { Subtype t = new Subtype(); return finishClone(t); }
Then finishClone() finishes the deep Copy of a Positional object. Implementation should make deep copies of the additional members of this sub class and then pass Positionable p to super.finishClone(). i.e. implementation must terminate with statement return super.finishClone(p); See IndicatorTurnoutIcon extends TurnoutIcon extends PositionableLabel for an example of how to continue deep cloning a chain of subclasses.
- Specified by:
deepClone
in interfacePositionable
- Overrides:
deepClone
in classPositionableIcon
- Returns:
- the copy
-
finishClone
protected Positionable finishClone(TurnoutIcon pos)
-
setTurnout
public void setTurnout(java.lang.String pName)
Attach a named turnout to this display item.- Parameters:
pName
- Used as a system/user name to lookup the turnout object
-
setTurnout
public void setTurnout(NamedBeanHandle<Turnout> to)
-
getTurnout
public Turnout getTurnout()
-
getNamedTurnout
public NamedBeanHandle<Turnout> getNamedTurnout()
-
getNamedBean
public NamedBean getNamedBean()
Description copied from class:PositionableLabel
Provide a generic method to return the bean associated with the Positionable.- Specified by:
getNamedBean
in interfacePositionable
- Overrides:
getNamedBean
in classPositionableLabel
-
setIcon
public void setIcon(java.lang.String name, NamedIcon icon)
Place icon by its localized bean state name.- Parameters:
name
- the state nameicon
- the icon to place
-
getIcon
public NamedIcon getIcon(java.lang.String state)
Get icon by its localized bean state name.- Overrides:
getIcon
in classPositionableIcon
- Parameters:
state
- the state name- Returns:
- the icon or null if no match
-
maxHeight
public int maxHeight()
- Specified by:
maxHeight
in interfacePositionable
- Overrides:
maxHeight
in classPositionableIcon
-
maxWidth
public int maxWidth()
- Specified by:
maxWidth
in interfacePositionable
- Overrides:
maxWidth
in classPositionableIcon
-
turnoutState
int turnoutState()
Get current state of attached turnout- Returns:
- A state variable from a Turnout, e.g. Turnout.CLOSED
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent e)
- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
getStateName
public java.lang.String getStateName(int state)
-
getTypeString
@Nonnull public java.lang.String getTypeString()
Description copied from interface:Positionable
Get the type of the positional as a String.- Specified by:
getTypeString
in interfacePositionable
- Overrides:
getTypeString
in classPositionableLabel
- Returns:
- the type to display
-
getNameString
public java.lang.String getNameString()
Description copied from interface:Positionable
Get the name of the positional as a String. This is often the display name of the NamedBean being positioned.- Specified by:
getNameString
in interfaceInlineLogixNG
- Specified by:
getNameString
in interfacePositionable
- Overrides:
getNameString
in classPositionableLabel
- Returns:
- the name to display
-
setTristate
public void setTristate(boolean set)
-
getTristate
public boolean getTristate()
-
getMomentary
public boolean getMomentary()
-
setMomentary
public void setMomentary(boolean m)
-
getDirectControl
public boolean getDirectControl()
-
setDirectControl
public void setDirectControl(boolean m)
-
showPopUp
public boolean showPopUp(javax.swing.JPopupMenu popup)
Pop-up displays unique attributes of turnouts- Specified by:
showPopUp
in interfacePositionable
- Overrides:
showPopUp
in classPositionableLabel
-
addTristateEntry
void addTristateEntry(javax.swing.JPopupMenu popup)
-
rotateOrthogonal
protected void rotateOrthogonal()
****** popup AbstractAction method overrides ********- Overrides:
rotateOrthogonal
in classPositionableIcon
-
setScale
public void setScale(double s)
- Specified by:
setScale
in interfacePositionable
- Overrides:
setScale
in classPositionableIcon
-
rotate
public void rotate(int deg)
- Specified by:
rotate
in interfacePositionable
- Overrides:
rotate
in classPositionableIcon
-
displayState
public void displayState(int state)
Drive the current state of the display from the state of the turnout.- Overrides:
displayState
in classPositionableIcon
-
setEditItemMenu
public boolean setEditItemMenu(javax.swing.JPopupMenu popup)
Description copied from interface:Positionable
Add additional menu items to the menu.- Specified by:
setEditItemMenu
in interfacePositionable
- Overrides:
setEditItemMenu
in classPositionableLabel
- Parameters:
popup
- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
editItem
protected void editItem()
-
updateItem
void updateItem()
-
setEditIconMenu
public boolean setEditIconMenu(javax.swing.JPopupMenu popup)
Description copied from interface:Positionable
Add additional menu items to the menu.- Specified by:
setEditIconMenu
in interfacePositionable
- Overrides:
setEditIconMenu
in classPositionableLabel
- Parameters:
popup
- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
edit
protected void edit()
- Overrides:
edit
in classPositionableLabel
-
updateTurnout
void updateTurnout()
-
buttonLive
public boolean buttonLive()
-
doMousePressed
public void doMousePressed(JmriMouseEvent e)
- Specified by:
doMousePressed
in interfacePositionable
- Overrides:
doMousePressed
in classPositionableLabel
-
doMouseReleased
public void doMouseReleased(JmriMouseEvent e)
- Specified by:
doMouseReleased
in interfacePositionable
- Overrides:
doMouseReleased
in classPositionableLabel
-
doMouseClicked
public void doMouseClicked(JmriMouseEvent e)
- Specified by:
doMouseClicked
in interfacePositionable
- Overrides:
doMouseClicked
in classPositionableLabel
-
alternateOnClick
void alternateOnClick()
-
dispose
public void dispose()
Description copied from class:PositionableLabel
Clean up when this object is no longer needed. Should not be called while the object is still displayed; see remove()- Overrides:
dispose
in classPositionableLabel
-
cloneMap
protected java.util.HashMap<java.lang.Integer,NamedIcon> cloneMap(java.util.HashMap<java.lang.Integer,NamedIcon> map, TurnoutIcon pos)
-
-