Class PositionableShape
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
jmri.jmrit.display.PositionableJComponent
jmri.jmrit.display.controlPanelEditor.shape.PositionableShape
- All Implemented Interfaces:
ImageObserver,MenuContainer,PropertyChangeListener,Serializable,Cloneable,EventListener,Positionable,InlineLogixNG
- Direct Known Subclasses:
PositionableCircle,PositionablePolygon,PositionableRectangle
public abstract class PositionableShape
extends PositionableJComponent
implements PropertyChangeListener
PositionableShape is item drawn by java.awt.Graphics2D.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategyNested classes/interfaces inherited from interface jmri.jmrit.display.Positionable
Positionable.DuplicateIdException -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DrawFrameprotected Colorprotected intprotected intprotected intprotected intprotected Colorprotected AffineTransformprotected int(package private) static final int(package private) static final int(package private) static final int(package private) static final int(package private) static final intFields inherited from class jmri.jmrit.display.PositionableJComponent
_editorFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionPositionableShape(Editor editor) PositionableShape(Editor editor, Shape shape) -
Method Summary
Modifier and TypeMethodDescriptionabstract PositionableMake a deep copy of Positional object.protected booleandoHandleMove(JmriMouseEvent event) voiddoMousePressed(JmriMouseEvent event) voidprotected Positionableintintprotected DrawFrameintgetInversePoint(int x, int y) intprotected Stringprotected ShapegetShape()intgetWidth()protected voidForce the shape to be regenerated next time it is needed.booleanprotected abstract DrawFramemakeEditFrame(boolean create) protected abstract ShapeCreate the shape returned bygetShape().intThe custom paint method paints a border outside of the bounds.intmaxWidth()The custom paint method paints a border outside of the bounds.voidprotected voidpaintHandles(Graphics2D g2d) voidvoidprotected voidvoidrotate(int deg) voidsetChangeLevel(int l) setControlSensor(String pName) Attach a named sensor to a PositionableShape.voidsetDisplayLevel(int l) voidvoidsetHeight(int h) voidsetHide(boolean h) voidvoidsetLineWidth(int w) voidbooleansetRotateMenu(JPopupMenu popup) Add a rotation menu to the contextual menu for this PostionableShape.booleansetScaleMenu(JPopupMenu popup) Add additional menu items to the menu.protected voidvoidsetWidth(int w) booleanshowPopUp(JPopupMenu popup) voidMethods inherited from class jmri.jmrit.display.PositionableJComponent
addClass, displayState, doMouseClicked, doMouseDragged, doMouseEntered, doMouseExited, doMouseMoved, doMouseReleased, doViemMenu, finishClone, getClasses, getDisplayLevel, getEditor, getId, getLogixNG, getNamedBean, getNameString, getPopupUtility, getScale, getTextComponent, getToolTip, getTypeString, getViewCoordinates, isActive, isControlling, isEditable, isEmptyHidden, isHidden, isPositionable, isValueEditDisabled, remove, removeAllClasses, removeClass, setControlling, setDisableControlMenu, setEditable, setEditIconMenu, setEditItemMenu, setEditor, setEmptyHidden, setHidden, setId, setLevel, setLogixNG, setLogixNG_SystemName, setPopupUtility, setPositionable, setRotateOrthogonalMenu, setScale, setShowToolTip, setTextEditMenu, setToolTip, setupLogixNG, setValueEditDisabled, setViewCoordinates, showHidden, showToolTip, storeItemMethods 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, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, updateUIMethods 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, validateTreeMethods 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, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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 Details
-
_lineColor
-
_fillColor
-
_transform
-
_hitIndex
-
_lastX
-
_lastY
-
_width
-
_height
-
_editFrame
-
TOP
- See Also:
-
RIGHT
- See Also:
-
BOTTOM
- See Also:
-
LEFT
- See Also:
-
SIZE
- See Also:
-
-
Constructor Details
-
PositionableShape
-
PositionableShape
-
-
Method Details
-
getPathIterator
-
setShape
-
getShape
-
getTransform
-
setWidth
-
setHeight
-
getHeight
- Specified by:
getHeightin interfacePositionable- Overrides:
getHeightin classJComponent
-
getWidth
- Specified by:
getWidthin interfacePositionable- Overrides:
getWidthin classJComponent
-
makeShape
Create the shape returned bygetShape().- Returns:
- the created shape
-
invalidateShape
Force the shape to be regenerated next time it is needed. -
setLineColor
-
getLineColor
-
setFillColor
-
getFillColor
-
setLineWidth
-
getLineWidth
-
rotate
- Specified by:
rotatein interfacePositionable- Overrides:
rotatein classPositionableJComponent
-
paint
- Overrides:
paintin classJComponent
-
paintHandles
-
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 classPositionableJComponent- Returns:
- the copy
-
finishClone
-
getSize
- Overrides:
getSizein classJComponent
-
updateSize
- Specified by:
updateSizein interfacePositionable- Overrides:
updateSizein classPositionableJComponent
-
maxWidth
The custom paint method paints a border outside of the bounds.- Specified by:
maxWidthin interfacePositionable- Overrides:
maxWidthin classPositionableJComponent
-
maxHeight
The custom paint method paints a border outside of the bounds.- Specified by:
maxHeightin interfacePositionable- Overrides:
maxHeightin classPositionableJComponent
-
showPopUp
- Specified by:
showPopUpin interfacePositionable- Overrides:
showPopUpin classPositionableJComponent
-
setRotateMenu
Add a rotation menu to the contextual menu for this PostionableShape.- Specified by:
setRotateMenuin interfacePositionable- Overrides:
setRotateMenuin classPositionableJComponent- Parameters:
popup- the menu to add a rotation menu to- Returns:
- true if rotation menu is added; false otherwise
-
setScaleMenu
Description copied from interface:PositionableAdd additional menu items to the menu.- Specified by:
setScaleMenuin interfacePositionable- Overrides:
setScaleMenuin classPositionableJComponent- Parameters:
popup- the menu to add the menu items to- Returns:
- true if adding items; false otherwise
-
getDegrees
- Specified by:
getDegreesin interfacePositionable- Overrides:
getDegreesin classPositionableJComponent
-
propertyChange
- Specified by:
propertyChangein interfacePropertyChangeListener
-
setDisplayLevel
- Specified by:
setDisplayLevelin interfacePositionable- Overrides:
setDisplayLevelin classPositionableJComponent
-
setControlSensor
Attach a named sensor to a PositionableShape.- Parameters:
pName- Used as a system/user name to lookup the sensor object- Returns:
- errror message or null
-
getControlSensor
-
getSensorName
-
getControlSensorHandle
-
isHideOnSensor
-
setHide
-
getChangeLevel
-
setChangeLevel
-
setListener
-
removeListener
-
makeEditFrame
-
getEditFrame
-
removeHandles
-
drawHandles
-
getInversePoint
- Throws:
NoninvertibleTransformException
-
doMousePressed
- Specified by:
doMousePressedin interfacePositionable- Overrides:
doMousePressedin classPositionableJComponent
-
doHandleMove
-