Package jmri.jmrit.display
Class SignalMastIcon
- 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.SignalMastIcon
-
- 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
public class SignalMastIcon extends PositionableIcon implements java.beans.PropertyChangeListener
An icon to display a status of aSignalMast
.The icons displayed are loaded from the
SignalAppearanceMap
in theSignalMast
.- See Also:
SignalMastManager
,InstanceManager
, 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 (package private) SignalMastItemPanel
_itemPanel
protected int
clickMode
What to do on click?(package private) javax.swing.ButtonGroup
litButtonGroup
protected boolean
litMode
How to handle lit vs not lit?(package private) static TransitCreationTool
tct
(package private) java.lang.String
useIconSet
-
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 SignalMastIcon(Editor editor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Positionable
deepClone()
Make a deep copy of Positional object.void
displayState(int s)
Set display of ClipBoard copied or duplicated mastvoid
displayState(java.lang.String state)
Drive the current state of the display from the state of the underlying SignalMast object.void
dispose()
Clean up when this object is no longer needed.void
doMouseClicked(JmriMouseEvent e)
Change the SignalMast aspect when the icon is clicked.protected void
editItem()
protected Positionable
finishClone(SignalMastIcon pos)
int
getClickMode()
boolean
getLitMode()
NamedBean
getNamedBean()
Provide a generic method to return the bean associated with the Positionable.NamedBeanHandle<SignalMast>
getNamedSignalMast()
java.lang.String
getNameString()
Get the name of the positional as a String.SignalMast
getSignalMast()
java.lang.String
getTypeString()
Get the type of the positional as a String.java.lang.String
mastState()
Get current appearance of the mastvoid
performMouseClicked(JmriMouseEvent e)
Handle mouse clicks when no modifier keys are pressed.void
propertyChange(java.beans.PropertyChangeEvent e)
void
rotate(int deg)
protected void
rotateOrthogonal()
****** popup AbstractAction method overrides ********void
setClickMode(int mode)
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
setLitMode(boolean mode)
boolean
setRotateOrthogonalMenu(javax.swing.JPopupMenu popup)
Rotate othogonally return true if popup is setvoid
setScale(double s)
void
setShowAutoText(boolean state)
void
setSignalMast(java.lang.String pName)
Taken from the layout editor Attached a numbered element to this display itemvoid
setSignalMast(NamedBeanHandle<SignalMast> sh)
Attached a signalmast element to this display itemboolean
showPopUp(javax.swing.JPopupMenu popup)
Pop-up just displays the name(package private) void
updateItem()
java.lang.String
useIconSet()
void
useIconSet(java.lang.String icon)
-
Methods inherited from class jmri.jmrit.display.PositionableIcon
cloneMap, finishClone, getFamily, getIcon, getIconMap, getIconStateNames, getScale, getStateNameCollection, maxHeight, maxWidth, setFamily
-
Methods inherited from class jmri.jmrit.display.PositionableLabel
addClass, cloneIcon, doMouseDragged, doMouseEntered, doMouseExited, doMouseMoved, doMousePressed, doMouseReleased, doViemMenu, edit, 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, 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
-
litButtonGroup
javax.swing.ButtonGroup litButtonGroup
-
tct
static volatile TransitCreationTool tct
-
_itemPanel
SignalMastItemPanel _itemPanel
-
useIconSet
java.lang.String useIconSet
-
clickMode
protected int clickMode
What to do on click? 0 means sequence through aspects; 1 means alternate the "lit" aspect; 2 means alternate theSignalAppearanceMap.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
SignalAppearanceMap.DARK
if lit is set false.
-
-
Constructor Detail
-
SignalMastIcon
public SignalMastIcon(Editor editor)
-
-
Method Detail
-
setShowAutoText
public void setShowAutoText(boolean state)
-
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(SignalMastIcon pos)
-
setSignalMast
public void setSignalMast(NamedBeanHandle<SignalMast> sh)
Attached a signalmast element to this display item- Parameters:
sh
- Specific SignalMast handle
-
setSignalMast
public void setSignalMast(java.lang.String pName)
Taken from the layout editor Attached a numbered element to this display item- Parameters:
pName
- Used as a system/user name to lookup the SignalMast object
-
getNamedSignalMast
public NamedBeanHandle<SignalMast> getNamedSignalMast()
-
getSignalMast
public SignalMast getSignalMast()
-
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
-
mastState
public java.lang.String mastState()
Get current appearance of the mast- Returns:
- An aspect from the SignalMast
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent e)
- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
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
-
showPopUp
public boolean showPopUp(javax.swing.JPopupMenu popup)
Pop-up just displays the name- Specified by:
showPopUp
in interfacePositionable
- Overrides:
showPopUp
in classPositionableLabel
-
setRotateOrthogonalMenu
public boolean setRotateOrthogonalMenu(javax.swing.JPopupMenu popup)
Description copied from class:PositionableLabel
Rotate othogonally return true if popup is set- Specified by:
setRotateOrthogonalMenu
in interfacePositionable
- Overrides:
setRotateOrthogonalMenu
in classPositionableLabel
- Parameters:
popup
- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
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()
-
doMouseClicked
public void doMouseClicked(JmriMouseEvent e)
Change the SignalMast aspect when the icon is clicked.- Specified by:
doMouseClicked
in interfacePositionable
- Overrides:
doMouseClicked
in classPositionableLabel
-
performMouseClicked
public void performMouseClicked(JmriMouseEvent e)
Handle mouse clicks when no modifier keys are pressed. Mouse clicks with modifier keys pressed can be processed by the containing component.- Parameters:
e
- the mouse click event
-
useIconSet
public void useIconSet(java.lang.String icon)
-
useIconSet
public java.lang.String useIconSet()
-
displayState
public void displayState(int s)
Set display of ClipBoard copied or duplicated mast- Overrides:
displayState
in classPositionableIcon
-
displayState
public void displayState(java.lang.String state)
Drive the current state of the display from the state of the underlying SignalMast object.- Parameters:
state
- the state to display
-
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
-
rotateOrthogonal
protected void rotateOrthogonal()
Description copied from class:PositionableIcon
****** popup AbstractAction method overrides ********- Overrides:
rotateOrthogonal
in classPositionableIcon
-
rotate
public void rotate(int deg)
- Specified by:
rotate
in interfacePositionable
- Overrides:
rotate
in classPositionableIcon
-
setScale
public void setScale(double s)
- Specified by:
setScale
in interfacePositionable
- Overrides:
setScale
in classPositionableIcon
-
setClickMode
public void setClickMode(int mode)
-
getClickMode
public int getClickMode()
-
setLitMode
public void setLitMode(boolean mode)
-
getLitMode
public boolean getLitMode()
-
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
-
-