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) boolean
active
(package private) javax.swing.JMenuItem
lock
(package private) javax.swing.JCheckBoxMenuItem
showTooltipItem
-
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 void
addClass(java.lang.String className)
Add a class name to this Positionable(package private) void
cleanup()
To be overridden if any special work needs to be done.Positionable
deepClone()
Make a deep copy of Positional object.void
displayState()
void
doMouseClicked(JmriMouseEvent event)
void
doMouseDragged(JmriMouseEvent event)
void
doMouseEntered(JmriMouseEvent event)
void
doMouseExited(JmriMouseEvent event)
void
doMouseMoved(JmriMouseEvent event)
void
doMousePressed(JmriMouseEvent event)
void
doMouseReleased(JmriMouseEvent event)
boolean
doViemMenu()
Use the 'Standard' presentation of the popup menu items.protected Positionable
finishClone(PositionableJComponent pos)
java.util.Set<java.lang.String>
getClasses()
Gets the class names of this Positionableint
getDegrees()
int
getDisplayLevel()
Editor
getEditor()
java.lang.String
getId()
Gets the Id of this PositionableLogixNG
getLogixNG()
Get the LogixNG of this InlineLogixNG.NamedBean
getNamedBean()
java.lang.String
getNameString()
Get the name of the positional as a String.PositionablePopupUtil
getPopupUtility()
Utility to handle Margins, Borders and other common popup itemsdouble
getScale()
javax.swing.JComponent
getTextComponent()
ToolTip
getToolTip()
java.lang.String
getTypeString()
Get the type of the positional as a String.boolean
getViewCoordinates()
boolean
isActive()
Check if the component is still displayed, and should be stored.boolean
isControlling()
boolean
isEditable()
boolean
isEmptyHidden()
boolean
isHidden()
boolean
isPositionable()
boolean
isValueEditDisabled()
int
maxHeight()
int
maxWidth()
void
remove()
Removes this object from display and persistancevoid
removeAllClasses()
Remove a class name to this Positionablevoid
removeClass(java.lang.String className)
Remove a class name to this Positionablevoid
rotate(int deg)
void
setControlling(boolean enabled)
boolean
setDisableControlMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.void
setDisplayLevel(int l)
void
setEditable(boolean enabled)
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
setEditor(Editor ed)
void
setEmptyHidden(boolean hide)
void
setHidden(boolean hide)
void
setId(java.lang.String id)
Sets the Id of this Positionablevoid
setLevel(int l)
Delayed setDisplayLevel for DnD.void
setLogixNG(LogixNG logixNG)
Set the LogixNG of this InlineLogixNG.void
setLogixNG_SystemName(java.lang.String systemName)
Set the system name for the LogixNG of this InlineLogixNG.void
setPopupUtility(PositionablePopupUtil tu)
void
setPositionable(boolean enabled)
boolean
setRotateMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.boolean
setRotateOrthogonalMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.void
setScale(double s)
boolean
setScaleMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.void
setShowToolTip(boolean set)
boolean
setTextEditMenu(javax.swing.JPopupMenu popup)
Add additional menu items to the menu.void
setToolTip(ToolTip tip)
void
setupLogixNG()
Setup the LogixNG of this InlineLogixNG.void
setValueEditDisabled(boolean isDisabled)
void
setViewCoordinates(boolean enabled)
void
showHidden()
boolean
showPopUp(javax.swing.JPopupMenu popup)
boolean
showToolTip()
boolean
storeItem()
Check if a permanent copy of this Positionable should be stored.void
updateSize()
-
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: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
- 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:
setId
in 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:
getId
in 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:
addClass
in interfacePositionable
- Parameters:
className
- the class name
-
removeClass
public void removeClass(java.lang.String className)
Remove a class name to this Positionable- Specified by:
removeClass
in interfacePositionable
- Parameters:
className
- the class name
-
removeAllClasses
public void removeAllClasses()
Remove a class name to this Positionable- Specified by:
removeAllClasses
in interfacePositionable
-
getClasses
public java.util.Set<java.lang.String> getClasses()
Gets the class names of this Positionable- Specified by:
getClasses
in interfacePositionable
- Returns:
- the classes
-
getTextComponent
public javax.swing.JComponent getTextComponent()
- Specified by:
getTextComponent
in interfacePositionable
-
displayState
public void displayState()
-
setPositionable
public void setPositionable(boolean enabled)
- Specified by:
setPositionable
in interfacePositionable
-
isPositionable
public boolean isPositionable()
- Specified by:
isPositionable
in interfacePositionable
-
setEditable
public void setEditable(boolean enabled)
- Specified by:
setEditable
in interfacePositionable
-
isEditable
public boolean isEditable()
- Specified by:
isEditable
in interfacePositionable
-
setViewCoordinates
public void setViewCoordinates(boolean enabled)
- Specified by:
setViewCoordinates
in interfacePositionable
-
getViewCoordinates
public boolean getViewCoordinates()
- Specified by:
getViewCoordinates
in interfacePositionable
-
setControlling
public void setControlling(boolean enabled)
- Specified by:
setControlling
in interfacePositionable
-
isControlling
public boolean isControlling()
- Specified by:
isControlling
in interfacePositionable
-
setHidden
public void setHidden(boolean hide)
- Specified by:
setHidden
in interfacePositionable
-
isHidden
public boolean isHidden()
- Specified by:
isHidden
in interfacePositionable
-
showHidden
public void showHidden()
- Specified by:
showHidden
in interfacePositionable
-
setEmptyHidden
public void setEmptyHidden(boolean hide)
- Specified by:
setEmptyHidden
in interfacePositionable
-
isEmptyHidden
public boolean isEmptyHidden()
- Specified by:
isEmptyHidden
in interfacePositionable
-
setValueEditDisabled
public void setValueEditDisabled(boolean isDisabled)
- Specified by:
setValueEditDisabled
in interfacePositionable
-
isValueEditDisabled
public boolean isValueEditDisabled()
- Specified by:
isValueEditDisabled
in interfacePositionable
-
setLevel
public void setLevel(int l)
Delayed setDisplayLevel for DnD.- Parameters:
l
- the new level
-
setDisplayLevel
public void setDisplayLevel(int l)
- Specified by:
setDisplayLevel
in interfacePositionable
-
getDisplayLevel
public int getDisplayLevel()
- Specified by:
getDisplayLevel
in interfacePositionable
-
setShowToolTip
public void setShowToolTip(boolean set)
- Specified by:
setShowToolTip
in interfacePositionable
-
showToolTip
public boolean showToolTip()
- Specified by:
showToolTip
in interfacePositionable
-
setToolTip
public void setToolTip(ToolTip tip)
- Specified by:
setToolTip
in interfacePositionable
-
getToolTip
public ToolTip getToolTip()
- Specified by:
getToolTip
in interfacePositionable
-
setScale
public void setScale(double s)
- Specified by:
setScale
in interfacePositionable
-
getScale
public double getScale()
- Specified by:
getScale
in interfacePositionable
-
rotate
public void rotate(int deg)
- Specified by:
rotate
in interfacePositionable
-
getDegrees
public int getDegrees()
- Specified by:
getDegrees
in interfacePositionable
-
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
- 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
- Returns:
- the name to display
-
getEditor
public Editor getEditor()
- Specified by:
getEditor
in interfacePositionable
-
setEditor
public void setEditor(Editor ed)
- Specified by:
setEditor
in interfacePositionable
-
doMousePressed
public void doMousePressed(JmriMouseEvent event)
- Specified by:
doMousePressed
in interfacePositionable
-
doMouseReleased
public void doMouseReleased(JmriMouseEvent event)
- Specified by:
doMouseReleased
in interfacePositionable
-
doMouseClicked
public void doMouseClicked(JmriMouseEvent event)
- Specified by:
doMouseClicked
in interfacePositionable
-
doMouseDragged
public void doMouseDragged(JmriMouseEvent event)
- Specified by:
doMouseDragged
in interfacePositionable
-
doMouseMoved
public void doMouseMoved(JmriMouseEvent event)
- Specified by:
doMouseMoved
in interfacePositionable
-
doMouseEntered
public void doMouseEntered(JmriMouseEvent event)
- Specified by:
doMouseEntered
in interfacePositionable
-
doMouseExited
public void doMouseExited(JmriMouseEvent event)
- Specified by:
doMouseExited
in interfacePositionable
-
storeItem
public boolean storeItem()
Description copied from interface:Positionable
Check if a permanent copy of this Positionable should be stored.- Specified by:
storeItem
in interfacePositionable
- Returns:
- true if this Positionable should be stored; false otherwise
-
doViemMenu
public boolean doViemMenu()
Description copied from interface:Positionable
Use 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:
doViemMenu
in interfacePositionable
- Returns:
- true if Editor may add the standardpopup menu items
-
setRotateOrthogonalMenu
public boolean setRotateOrthogonalMenu(javax.swing.JPopupMenu popup)
Description copied from interface:Positionable
Add additional menu items to the menu.- Specified by:
setRotateOrthogonalMenu
in 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:Positionable
Add additional menu items to the menu.- Specified by:
setRotateMenu
in 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:Positionable
Add additional menu items to the menu.- Specified by:
setScaleMenu
in 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:Positionable
Add additional menu items to the menu.- Specified by:
setDisableControlMenu
in 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:Positionable
Add additional menu items to the menu.- Specified by:
setTextEditMenu
in 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:Positionable
Add additional menu items to the menu.- Specified by:
setEditItemMenu
in 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:
showPopUp
in interfacePositionable
-
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
- 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:Positionable
Utility to handle Margins, Borders and other common popup items- Specified by:
getPopupUtility
in interfacePositionable
- Returns:
- null if these item do not apply
-
setPopupUtility
public void setPopupUtility(PositionablePopupUtil tu)
- Specified by:
setPopupUtility
in interfacePositionable
-
updateSize
public void updateSize()
- Specified by:
updateSize
in interfacePositionable
-
maxWidth
public int maxWidth()
- Specified by:
maxWidth
in interfacePositionable
-
maxHeight
public int maxHeight()
- Specified by:
maxHeight
in interfacePositionable
-
remove
public void remove()
Removes this object from display and persistance- Specified by:
remove
in 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:
getNamedBean
in interfacePositionable
-
getLogixNG
public LogixNG getLogixNG()
Get the LogixNG of this InlineLogixNG.- Specified by:
getLogixNG
in 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:
setLogixNG
in 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_SystemName
in interfaceInlineLogixNG
- Parameters:
systemName
- the system name
-
setupLogixNG
public void setupLogixNG()
Setup the LogixNG of this InlineLogixNG.- Specified by:
setupLogixNG
in interfaceInlineLogixNG
-
-