Class MultiSensorIcon
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLabel
-
- jmri.jmrit.display.PositionableLabel
-
- jmri.jmrit.display.MultiSensorIcon
-
- 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 MultiSensorIcon extends PositionableLabel implements java.beans.PropertyChangeListener
An icon to display a status of set of Sensors.Each sensor has an associated image. Normally, only one sensor will be active at a time, and in that case the associated image will be shown. If more than one is active, one of the corresponding images will be shown, but which one is not guaranteed.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classMultiSensorIcon.Entry-
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) java.lang.String_iconFamily(package private) MultiSensorItemPanel_itemPanel(package private) intdisplaying*********** end popup action methods ***************(package private) java.util.ArrayList<MultiSensorIcon.Entry>entries(package private) NamedIconinactive(package private) java.lang.StringinactiveName(package private) NamedIconinconsistent(package private) java.lang.StringinconsistentName(package private) NamedIconunknown(package private) java.lang.StringunknownName(package private) booleanupdown-
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 MultiSensorIcon(Editor editor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEntry(java.lang.String pName, NamedIcon icon)voidaddEntry(NamedBeanHandle<Sensor> sensor, NamedIcon icon)(package private) booleanbuttonLive()PositionabledeepClone()Make a deep copy of Positional object.voiddisplayState()Drive the current state of the display from the state of the turnout.voiddispose()Clean up when this object is no longer needed.voiddoMouseClicked(JmriMouseEvent e)protected voidedit()protected voideditItem()protected PositionablefinishClone(MultiSensorIcon pos)java.lang.StringgetFamily()NamedIcongetInactiveIcon()NamedIcongetInconsistentIcon()java.lang.StringgetNameString()Get the name of the positional as a String.intgetNumEntries()NamedIcongetSensorIcon(int i)java.lang.StringgetSensorName(int i)java.util.List<Sensor>getSensors()java.lang.StringgetTypeString()Get the type of the positional as a String.NamedIcongetUnknownIcon()booleangetUpDown()intmaxHeight()intmaxWidth()voidperformMouseClicked(JmriMouseEvent e, int xx, int yy)voidpropertyChange(java.beans.PropertyChangeEvent e)voidrotate(int deg)protected voidrotateOrthogonal()****** popup AbstractAction.actionPerformed method overrides ********booleansetEditIconMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.booleansetEditItemMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.voidsetFamily(java.lang.String family)voidsetInactiveIcon(NamedIcon i)voidsetInconsistentIcon(NamedIcon i)voidsetScale(double s)voidsetUnknownIcon(NamedIcon i)voidsetUpDown(boolean b)(package private) voidupdateItem()(package private) voidupdateSensor()-
Methods inherited from class jmri.jmrit.display.PositionableLabel
addClass, cloneIcon, doMouseDragged, doMouseEntered, doMouseExited, doMouseMoved, doMousePressed, doMouseReleased, doViemMenu, editIcon, editIconItem, editTextItem, finishClone, finishItemUpdate, getClasses, getDegrees, getDisplayLevel, getEditor, getHeight, getId, getLogixNG, getNamedBean, getPopupUtility, getScale, 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, showEmptyHidden, showHidden, showPopUp, 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
-
_iconFamily
java.lang.String _iconFamily
-
updown
boolean updown
-
entries
java.util.ArrayList<MultiSensorIcon.Entry> entries
-
inactiveName
java.lang.String inactiveName
-
inconsistentName
java.lang.String inconsistentName
-
inconsistent
NamedIcon inconsistent
-
unknownName
java.lang.String unknownName
-
_itemPanel
MultiSensorItemPanel _itemPanel
-
displaying
int displaying
*********** end popup action methods ***************
-
-
Constructor Detail
-
MultiSensorIcon
public MultiSensorIcon(Editor editor)
-
-
Method Detail
-
setUpDown
public void setUpDown(boolean b)
-
getUpDown
public boolean getUpDown()
-
deepClone
public Positionable deepClone()
Description copied from interface:PositionableMake 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:
deepClonein interfacePositionable- Overrides:
deepClonein classPositionableLabel- Returns:
- the copy
-
finishClone
protected Positionable finishClone(MultiSensorIcon pos)
-
addEntry
public void addEntry(NamedBeanHandle<Sensor> sensor, NamedIcon icon)
-
getNumEntries
public int getNumEntries()
-
getSensors
public java.util.List<Sensor> getSensors()
-
getSensorName
public java.lang.String getSensorName(int i)
-
getSensorIcon
public NamedIcon getSensorIcon(int i)
-
getFamily
public java.lang.String getFamily()
-
setFamily
public void setFamily(java.lang.String family)
-
getInactiveIcon
public NamedIcon getInactiveIcon()
-
setInactiveIcon
public void setInactiveIcon(NamedIcon i)
-
getInconsistentIcon
public NamedIcon getInconsistentIcon()
-
setInconsistentIcon
public void setInconsistentIcon(NamedIcon i)
-
getUnknownIcon
public NamedIcon getUnknownIcon()
-
setUnknownIcon
public void setUnknownIcon(NamedIcon i)
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent e)
- Specified by:
propertyChangein interfacejava.beans.PropertyChangeListener
-
getTypeString
@Nonnull public java.lang.String getTypeString()
Description copied from interface:PositionableGet the type of the positional as a String.- Specified by:
getTypeStringin interfacePositionable- Overrides:
getTypeStringin classPositionableLabel- Returns:
- the type to display
-
getNameString
public java.lang.String getNameString()
Description copied from interface:PositionableGet the name of the positional as a String. This is often the display name of the NamedBean being positioned.- Specified by:
getNameStringin interfaceInlineLogixNG- Specified by:
getNameStringin interfacePositionable- Overrides:
getNameStringin classPositionableLabel- Returns:
- the name to display
-
rotateOrthogonal
protected void rotateOrthogonal()
****** popup AbstractAction.actionPerformed method overrides ********- Overrides:
rotateOrthogonalin classPositionableLabel
-
setScale
public void setScale(double s)
- Specified by:
setScalein interfacePositionable- Overrides:
setScalein classPositionableLabel
-
rotate
public void rotate(int deg)
- Specified by:
rotatein interfacePositionable- Overrides:
rotatein classPositionableLabel
-
setEditItemMenu
public boolean setEditItemMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setEditItemMenuin interfacePositionable- Overrides:
setEditItemMenuin 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:PositionableAdd additional menu items to the menu.- Specified by:
setEditIconMenuin interfacePositionable- Overrides:
setEditIconMenuin classPositionableLabel- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
edit
protected void edit()
- Overrides:
editin classPositionableLabel
-
updateSensor
void updateSensor()
-
displayState
public void displayState()
Drive the current state of the display from the state of the turnout.
-
maxHeight
public int maxHeight()
- Specified by:
maxHeightin interfacePositionable- Overrides:
maxHeightin classPositionableLabel
-
maxWidth
public int maxWidth()
- Specified by:
maxWidthin interfacePositionable- Overrides:
maxWidthin classPositionableLabel
-
performMouseClicked
public void performMouseClicked(JmriMouseEvent e, int xx, int yy)
-
buttonLive
boolean buttonLive()
-
doMouseClicked
public void doMouseClicked(JmriMouseEvent e)
- Specified by:
doMouseClickedin interfacePositionable- Overrides:
doMouseClickedin classPositionableLabel
-
dispose
public void dispose()
Description copied from class:PositionableLabelClean up when this object is no longer needed. Should not be called while the object is still displayed; see remove()- Overrides:
disposein classPositionableLabel
-
-