Package jmri.jmrit.display
Class PositionableJComponent
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- jmri.jmrit.display.PositionableJComponent
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.lang.Cloneable,Positionable,InlineLogixNG
- Direct Known Subclasses:
AnalogClock2Display,PositionableShape
public class PositionableJComponent extends javax.swing.JComponent implements Positionable
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
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 Editor_editor(package private) booleanactive(package private) javax.swing.JMenuItemlock(package private) javax.swing.JCheckBoxMenuItemshowTooltipItem-
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
-
-
Constructor Summary
Constructors Constructor Description PositionableJComponent(Editor editor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddClass(java.lang.String className)Add a class name to this Positionable(package private) voidcleanup()To be overridden if any special work needs to be done.PositionabledeepClone()Make a deep copy of Positional object.voiddisplayState()voiddoMouseClicked(JmriMouseEvent event)voiddoMouseDragged(JmriMouseEvent event)voiddoMouseEntered(JmriMouseEvent event)voiddoMouseExited(JmriMouseEvent event)voiddoMouseMoved(JmriMouseEvent event)voiddoMousePressed(JmriMouseEvent event)voiddoMouseReleased(JmriMouseEvent event)booleandoViemMenu()Use the 'Standard' presentation of the popup menu items.protected PositionablefinishClone(PositionableJComponent pos)java.util.Set<java.lang.String>getClasses()Gets the class names of this PositionableintgetDegrees()intgetDisplayLevel()EditorgetEditor()java.lang.StringgetId()Gets the Id of this PositionableLogixNGgetLogixNG()Get the LogixNG of this InlineLogixNG.NamedBeangetNamedBean()java.lang.StringgetNameString()Get the name of the positional as a String.PositionablePopupUtilgetPopupUtility()Utility to handle Margins, Borders and other common popup itemsdoublegetScale()javax.swing.JComponentgetTextComponent()ToolTipgetToolTip()java.lang.StringgetTypeString()Get the type of the positional as a String.booleangetViewCoordinates()booleanisActive()Check if the component is still displayed, and should be stored.booleanisControlling()booleanisEditable()booleanisEmptyHidden()booleanisHidden()booleanisPositionable()booleanisValueEditDisabled()intmaxHeight()intmaxWidth()voidremove()Removes this object from display and persistancevoidremoveAllClasses()Remove a class name to this PositionablevoidremoveClass(java.lang.String className)Remove a class name to this Positionablevoidrotate(int deg)voidsetControlling(boolean enabled)booleansetDisableControlMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.voidsetDisplayLevel(int l)voidsetEditable(boolean enabled)booleansetEditIconMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.booleansetEditItemMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.voidsetEditor(Editor ed)voidsetEmptyHidden(boolean hide)voidsetHidden(boolean hide)voidsetId(java.lang.String id)Sets the Id of this PositionablevoidsetLevel(int l)Delayed setDisplayLevel for DnD.voidsetLogixNG(LogixNG logixNG)Set the LogixNG of this InlineLogixNG.voidsetLogixNG_SystemName(java.lang.String systemName)Set the system name for the LogixNG of this InlineLogixNG.voidsetPopupUtility(PositionablePopupUtil tu)voidsetPositionable(boolean enabled)booleansetRotateMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.booleansetRotateOrthogonalMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.voidsetScale(double s)booleansetScaleMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.voidsetShowToolTip(boolean set)booleansetTextEditMenu(javax.swing.JPopupMenu popup)Add additional menu items to the menu.voidsetToolTip(ToolTip tip)voidsetupLogixNG()Setup the LogixNG of this InlineLogixNG.voidsetValueEditDisabled(boolean isDisabled)voidsetViewCoordinates(boolean enabled)voidshowHidden()booleanshowPopUp(javax.swing.JPopupMenu popup)booleanshowToolTip()booleanstoreItem()Check if a permanent copy of this Positionable should be stored.voidupdateSize()-
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, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
-
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, getAccessibleContext, 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, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, 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, getHeight, getLocation, getParent, getPreferredSize, getTypeName, getWidth, getX, getY, invalidate, isOpaque, repaint, requestFocusInWindow, setBackground, setBorder, setForeground, setLocation, setLocation, setOpaque, setSize, setVisible
-
-
-
-
Field Detail
-
lock
javax.swing.JMenuItem lock
-
showTooltipItem
javax.swing.JCheckBoxMenuItem showTooltipItem
-
active
boolean active
-
-
Constructor Detail
-
PositionableJComponent
public PositionableJComponent(Editor editor)
-
-
Method Detail
-
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- Returns:
- the copy
-
finishClone
protected Positionable finishClone(PositionableJComponent pos)
-
setId
public void setId(java.lang.String id) throws Positionable.DuplicateIdException
Sets the Id of this Positionable- Specified by:
setIdin interfacePositionable- Parameters:
id- the id or null if no id- Throws:
Positionable.DuplicateIdException- if another Positionable in the editor already has this id
-
getId
public java.lang.String getId()
Gets the Id of this Positionable- Specified by:
getIdin interfacePositionable- Returns:
- the id or null if no id
-
addClass
public void addClass(java.lang.String className)
Add a class name to this Positionable- Specified by:
addClassin interfacePositionable- Parameters:
className- the class name
-
removeClass
public void removeClass(java.lang.String className)
Remove a class name to this Positionable- Specified by:
removeClassin interfacePositionable- Parameters:
className- the class name
-
removeAllClasses
public void removeAllClasses()
Remove a class name to this Positionable- Specified by:
removeAllClassesin interfacePositionable
-
getClasses
public java.util.Set<java.lang.String> getClasses()
Gets the class names of this Positionable- Specified by:
getClassesin interfacePositionable- Returns:
- the classes
-
getTextComponent
public javax.swing.JComponent getTextComponent()
- Specified by:
getTextComponentin interfacePositionable
-
displayState
public void displayState()
-
setPositionable
public void setPositionable(boolean enabled)
- Specified by:
setPositionablein interfacePositionable
-
isPositionable
public boolean isPositionable()
- Specified by:
isPositionablein interfacePositionable
-
setEditable
public void setEditable(boolean enabled)
- Specified by:
setEditablein interfacePositionable
-
isEditable
public boolean isEditable()
- Specified by:
isEditablein interfacePositionable
-
setViewCoordinates
public void setViewCoordinates(boolean enabled)
- Specified by:
setViewCoordinatesin interfacePositionable
-
getViewCoordinates
public boolean getViewCoordinates()
- Specified by:
getViewCoordinatesin interfacePositionable
-
setControlling
public void setControlling(boolean enabled)
- Specified by:
setControllingin interfacePositionable
-
isControlling
public boolean isControlling()
- Specified by:
isControllingin interfacePositionable
-
setHidden
public void setHidden(boolean hide)
- Specified by:
setHiddenin interfacePositionable
-
isHidden
public boolean isHidden()
- Specified by:
isHiddenin interfacePositionable
-
showHidden
public void showHidden()
- Specified by:
showHiddenin interfacePositionable
-
setEmptyHidden
public void setEmptyHidden(boolean hide)
- Specified by:
setEmptyHiddenin interfacePositionable
-
isEmptyHidden
public boolean isEmptyHidden()
- Specified by:
isEmptyHiddenin interfacePositionable
-
setValueEditDisabled
public void setValueEditDisabled(boolean isDisabled)
- Specified by:
setValueEditDisabledin interfacePositionable
-
isValueEditDisabled
public boolean isValueEditDisabled()
- Specified by:
isValueEditDisabledin interfacePositionable
-
setLevel
public void setLevel(int l)
Delayed setDisplayLevel for DnD.- Parameters:
l- the new level
-
setDisplayLevel
public void setDisplayLevel(int l)
- Specified by:
setDisplayLevelin interfacePositionable
-
getDisplayLevel
public int getDisplayLevel()
- Specified by:
getDisplayLevelin interfacePositionable
-
setShowToolTip
public void setShowToolTip(boolean set)
- Specified by:
setShowToolTipin interfacePositionable
-
showToolTip
public boolean showToolTip()
- Specified by:
showToolTipin interfacePositionable
-
setToolTip
public void setToolTip(ToolTip tip)
- Specified by:
setToolTipin interfacePositionable
-
getToolTip
public ToolTip getToolTip()
- Specified by:
getToolTipin interfacePositionable
-
setScale
public void setScale(double s)
- Specified by:
setScalein interfacePositionable
-
getScale
public double getScale()
- Specified by:
getScalein interfacePositionable
-
rotate
public void rotate(int deg)
- Specified by:
rotatein interfacePositionable
-
getDegrees
public int getDegrees()
- Specified by:
getDegreesin interfacePositionable
-
getTypeString
@Nonnull public java.lang.String getTypeString()
Description copied from interface:PositionableGet the type of the positional as a String.- Specified by:
getTypeStringin interfacePositionable- 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- Returns:
- the name to display
-
getEditor
public Editor getEditor()
- Specified by:
getEditorin interfacePositionable
-
setEditor
public void setEditor(Editor ed)
- Specified by:
setEditorin interfacePositionable
-
doMousePressed
public void doMousePressed(JmriMouseEvent event)
- Specified by:
doMousePressedin interfacePositionable
-
doMouseReleased
public void doMouseReleased(JmriMouseEvent event)
- Specified by:
doMouseReleasedin interfacePositionable
-
doMouseClicked
public void doMouseClicked(JmriMouseEvent event)
- Specified by:
doMouseClickedin interfacePositionable
-
doMouseDragged
public void doMouseDragged(JmriMouseEvent event)
- Specified by:
doMouseDraggedin interfacePositionable
-
doMouseMoved
public void doMouseMoved(JmriMouseEvent event)
- Specified by:
doMouseMovedin interfacePositionable
-
doMouseEntered
public void doMouseEntered(JmriMouseEvent event)
- Specified by:
doMouseEnteredin interfacePositionable
-
doMouseExited
public void doMouseExited(JmriMouseEvent event)
- Specified by:
doMouseExitedin interfacePositionable
-
storeItem
public boolean storeItem()
Description copied from interface:PositionableCheck if a permanent copy of this Positionable should be stored.- Specified by:
storeItemin interfacePositionable- Returns:
- true if this Positionable should be stored; false otherwise
-
doViemMenu
public boolean doViemMenu()
Description copied from interface:PositionableUse the 'Standard' presentation of the popup menu items. The editor will call this method to find out whether it should create any popup viewing menu items.- Specified by:
doViemMenuin interfacePositionable- Returns:
- true if Editor may add the standardpopup menu items
-
setRotateOrthogonalMenu
public boolean setRotateOrthogonalMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setRotateOrthogonalMenuin interfacePositionable- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
setRotateMenu
public boolean setRotateMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setRotateMenuin interfacePositionable- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
setScaleMenu
public boolean setScaleMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setScaleMenuin interfacePositionable- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
setDisableControlMenu
public boolean setDisableControlMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setDisableControlMenuin interfacePositionable- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
setTextEditMenu
public boolean setTextEditMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setTextEditMenuin interfacePositionable- 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:PositionableAdd additional menu items to the menu.- Specified by:
setEditItemMenuin interfacePositionable- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
showPopUp
public boolean showPopUp(javax.swing.JPopupMenu popup)
- Specified by:
showPopUpin interfacePositionable
-
setEditIconMenu
public boolean setEditIconMenu(javax.swing.JPopupMenu popup)
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setEditIconMenuin interfacePositionable- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
getPopupUtility
public PositionablePopupUtil getPopupUtility()
Description copied from interface:PositionableUtility to handle Margins, Borders and other common popup items- Specified by:
getPopupUtilityin interfacePositionable- Returns:
- null if these item do not apply
-
setPopupUtility
public void setPopupUtility(PositionablePopupUtil tu)
- Specified by:
setPopupUtilityin interfacePositionable
-
updateSize
public void updateSize()
- Specified by:
updateSizein interfacePositionable
-
maxWidth
public int maxWidth()
- Specified by:
maxWidthin interfacePositionable
-
maxHeight
public int maxHeight()
- Specified by:
maxHeightin interfacePositionable
-
remove
public void remove()
Removes this object from display and persistance- Specified by:
removein interfacePositionable
-
cleanup
void cleanup()
To be overridden if any special work needs to be done.
-
isActive
public boolean isActive()
Check if the component is still displayed, and should be stored.- Returns:
- true if active; false otherwise
-
getNamedBean
public NamedBean getNamedBean()
- Specified by:
getNamedBeanin interfacePositionable
-
getLogixNG
public LogixNG getLogixNG()
Get the LogixNG of this InlineLogixNG.- Specified by:
getLogixNGin interfaceInlineLogixNG- Returns:
- the LogixNG or null if it has no LogixNG
-
setLogixNG
public void setLogixNG(LogixNG logixNG)
Set the LogixNG of this InlineLogixNG.- Specified by:
setLogixNGin interfaceInlineLogixNG- Parameters:
logixNG- the LogixNG or null if remove the LogixNG from the InlineLogixNG
-
setLogixNG_SystemName
public void setLogixNG_SystemName(java.lang.String systemName)
Set the system name for the LogixNG of this InlineLogixNG.- Specified by:
setLogixNG_SystemNamein interfaceInlineLogixNG- Parameters:
systemName- the system name
-
setupLogixNG
public void setupLogixNG()
Setup the LogixNG of this InlineLogixNG.- Specified by:
setupLogixNGin interfaceInlineLogixNG
-
-
