Package com.inductiveautomation.rm.tool
Class RMPolygonShapeTool<T extends RMPolygonShape>
- java.lang.Object
-
- com.inductiveautomation.snap.ui.UIOwner<SwingEvent,javax.swing.JComponent>
-
- com.inductiveautomation.snap.swing.SwingOwner
-
- com.inductiveautomation.rm.tool.RMTool<T>
-
- com.inductiveautomation.rm.tool.RMPolygonShapeTool<T>
-
- Direct Known Subclasses:
RMAnimPathShapeTool
,RMPencilShapeTool
public class RMPolygonShapeTool<T extends RMPolygonShape> extends RMTool<T>
This class manages creation and editing of polygon shapes.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.inductiveautomation.rm.tool.RMTool
RMTool.RMShapeHandle
-
-
Field Summary
Fields Modifier and Type Field Description static int
_mouseDownPointIndex
-
Fields inherited from class com.inductiveautomation.rm.tool.RMTool
HandleE, HandleN, HandleNE, HandleNW, HandleS, HandleSE, HandleSW, HandleW, HandleWidth, SPLIT_RESET
-
Fields inherited from class com.inductiveautomation.snap.ui.UIOwner
DragDrop, DragEnter, DragEvents, DragExit, DragOver, KeyEvents, KeyFinished, KeyPressed, KeyReleased, KeyTyped, MouseClicked, MouseDragged, MouseEntered, MouseEvents, MouseExited, MouseFinished, MouseMoved, MousePressed, MouseReleased
-
-
Constructor Summary
Constructors Constructor Description RMPolygonShapeTool()
RMPolygonShapeTool(com.google.common.eventbus.EventBus ebus)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addNewPoint()
Add a point to the curve by subdividing the path segment at the hit point.protected javax.swing.JComponent
createUI()
Override to return empty panel.void
deactivateTool()
Overrides standard tool method to trigger polygon creation when the tool is deactivated.void
deleteSelectedPoint()
Delete the selected control point and readjust shape boundsRMRect
getBoundsSuperSelected(RMShape aShape)
Returns the bounds for this shape when it's super-selected.RMSize
getPathHandleSize(RMPolygonShape aPoly)
For hit testing - returns the size of the handles scaled to path coordinatesjava.lang.Class
getShapeClass()
Returns the class that this tool is responsible for.boolean
getSmoothPathOnMouseUp()
Returns whether tool should smooth path segments during creation.void
mouseDragged(java.awt.event.MouseEvent anEvent)
Handles mouse dragged for polygon creation.void
mouseDragged(T aPolygon, java.awt.event.MouseEvent anEvent)
Event handling for shape editing.void
mouseMoved(T aPolygon, java.awt.event.MouseEvent anEvent)
Event handling - overridden to maintain default cursor.void
mousePressed(java.awt.event.MouseEvent anEvent)
Handles mouse pressed for polygon creation.void
mousePressed(T aPolygon, java.awt.event.MouseEvent anEvent)
Event handling for shape editing.void
mouseReleased(java.awt.event.MouseEvent anEvent)
Handles mouse released for polygon creation.protected T
newInstance()
Returns a new instance of the shape class that this tool is responsible for.void
paintTool(java.awt.Graphics2D g)
Draws the polygon tool's path durring path creation.void
processKeyEvent(T aShape, java.awt.event.KeyEvent anEvent)
Editor method.void
reactivateTool()
Overrides standard tool method to trigger polygon creation when the tool is reactivated.void
respondUI(SwingEvent anEvent)
Handles the pop-up menuvoid
runContextMenu(RMPolygonShape aPolyShape, java.awt.event.MouseEvent anEvent)
Runs a context menu for the given event.void
willLoseSuperSelectionInEditor(RMShape aShape, RMEditor anEditor)
Editor method - called when an instance of this tool's shape in de-super-selected.-
Methods inherited from class com.inductiveautomation.rm.tool.RMTool
acceptsDrag, activateTool, attachEventBus, didBecomeSuperSelectedShapeInEditor, dragEnter, dragExit, dragOver, drop, dropClass, dropColor, dropDragKey, dropFiles, dropString, flavorForClass, flushChanges, getAcceptsChildren, getDatasetEntity, getDragDisplayBounds, getEditor, getEditorPane, getFont, getFontDeep, getGalleryClone, getHandleAtPoint, getHandleCount, getHandleCursor, getHandleOpposing, getHandlePoint, getHandleRect, getIcon, getIcon, getPointsFromUnits, getSelectedShape, getSelectedShapes, getSelectTool, getShapeFillInspector, getShapeHandleAtPoint, getTool, getTool, getToolTipText, getUnitsFromPoints, getWindowTitle, isSelected, isSuperSelectable, isSuperSelected, isUngroupable, mouseMoved, mousePressedSelection, mouseReleased, moveShapeHandle, paintShapeHandles, setFont, setFontBold, setFontBoldDeep, setFontFamily, setFontFamilyDeep, setFontItalic, setFontItalicDeep, setFontName, setFontNameDeep, setFontSize, setFontSizeDeep
-
Methods inherited from class com.inductiveautomation.snap.swing.SwingOwner
addKeyActionEvent, createTimer, createUI, createWindow, getNode, getNode, getNodeHelper, getTimer, getTimer, getUI, getWindow, isEventThread, isWindowVisible, requestFocus, requestFocusImpl, runLater, sendEvent, setWindowVisible
-
Methods inherited from class com.inductiveautomation.snap.ui.UIOwner
addNodeBinding, disableEvents, enableEvents, getBindingModelValue, getBindingNodeValue, getConversionMap, getConversionMapKey, getConversionMaps, getConversionMapValue, getFirstFocus, getModelValue, getNode, getNodeAction, getNodeBoolValue, getNodeFloatValue, getNodeIntValue, getNodeItemDisplayKey, getNodeItems, getNodeSelectedIndex, getNodeSelectedItem, getNodeStringValue, getNodeText, getNodeValue, getUI, getUIHpr, initUI, initUI, isNodeEnabled, isNodeValueAdjusting, isSendEventDisabled, isUISet, processResetUI, processRespondUI, resetLater, resetNodeBindings, resetUI, runLaterDelayed, runLaterOnce, sendEvent, sendNodeAction, setBindingModelValue, setBindingNodeValue, setFirstFocus, setModelValue, setNodeAction, setNodeEnabled, setNodeItemDisplayKey, setNodeItems, setNodeItems, setNodeSelectedIndex, setNodeSelectedItem, setNodeText, setNodeValue, setSendEventDisabled
-
-
-
-
Method Detail
-
createUI
protected javax.swing.JComponent createUI()
Override to return empty panel.- Overrides:
createUI
in classRMTool<T extends RMPolygonShape>
-
respondUI
public void respondUI(SwingEvent anEvent)
Handles the pop-up menu- Overrides:
respondUI
in classUIOwner<SwingEvent,javax.swing.JComponent>
-
getShapeClass
public java.lang.Class getShapeClass()
Returns the class that this tool is responsible for.- Overrides:
getShapeClass
in classRMTool<T extends RMPolygonShape>
-
newInstance
protected T newInstance()
Returns a new instance of the shape class that this tool is responsible for.- Overrides:
newInstance
in classRMTool<T extends RMPolygonShape>
-
getSmoothPathOnMouseUp
public boolean getSmoothPathOnMouseUp()
Returns whether tool should smooth path segments during creation.
-
mousePressed
public void mousePressed(java.awt.event.MouseEvent anEvent)
Handles mouse pressed for polygon creation.- Overrides:
mousePressed
in classRMTool<T extends RMPolygonShape>
-
mouseDragged
public void mouseDragged(java.awt.event.MouseEvent anEvent)
Handles mouse dragged for polygon creation.- Overrides:
mouseDragged
in classRMTool<T extends RMPolygonShape>
-
mouseReleased
public void mouseReleased(java.awt.event.MouseEvent anEvent)
Handles mouse released for polygon creation.- Overrides:
mouseReleased
in classRMTool<T extends RMPolygonShape>
-
mouseMoved
public void mouseMoved(T aPolygon, java.awt.event.MouseEvent anEvent)
Event handling - overridden to maintain default cursor.- Overrides:
mouseMoved
in classRMTool<T extends RMPolygonShape>
-
mousePressed
public void mousePressed(T aPolygon, java.awt.event.MouseEvent anEvent)
Event handling for shape editing.- Overrides:
mousePressed
in classRMTool<T extends RMPolygonShape>
-
mouseDragged
public void mouseDragged(T aPolygon, java.awt.event.MouseEvent anEvent)
Event handling for shape editing.- Overrides:
mouseDragged
in classRMTool<T extends RMPolygonShape>
-
deactivateTool
public void deactivateTool()
Overrides standard tool method to trigger polygon creation when the tool is deactivated.- Overrides:
deactivateTool
in classRMTool<T extends RMPolygonShape>
-
reactivateTool
public void reactivateTool()
Overrides standard tool method to trigger polygon creation when the tool is reactivated.- Overrides:
reactivateTool
in classRMTool<T extends RMPolygonShape>
-
willLoseSuperSelectionInEditor
public void willLoseSuperSelectionInEditor(RMShape aShape, RMEditor anEditor)
Editor method - called when an instance of this tool's shape in de-super-selected.- Overrides:
willLoseSuperSelectionInEditor
in classRMTool<T extends RMPolygonShape>
-
paintTool
public void paintTool(java.awt.Graphics2D g)
Draws the polygon tool's path durring path creation.- Overrides:
paintTool
in classRMTool<T extends RMPolygonShape>
-
getBoundsSuperSelected
public RMRect getBoundsSuperSelected(RMShape aShape)
Returns the bounds for this shape when it's super-selected.- Overrides:
getBoundsSuperSelected
in classRMTool<T extends RMPolygonShape>
-
runContextMenu
public void runContextMenu(RMPolygonShape aPolyShape, java.awt.event.MouseEvent anEvent)
Runs a context menu for the given event.
-
deleteSelectedPoint
public void deleteSelectedPoint()
Delete the selected control point and readjust shape bounds
-
processKeyEvent
public void processKeyEvent(T aShape, java.awt.event.KeyEvent anEvent)
Editor method.- Overrides:
processKeyEvent
in classRMTool<T extends RMPolygonShape>
- Parameters:
aShape
-anEvent
-
-
addNewPoint
public void addNewPoint()
Add a point to the curve by subdividing the path segment at the hit point.
-
getPathHandleSize
public RMSize getPathHandleSize(RMPolygonShape aPoly)
For hit testing - returns the size of the handles scaled to path coordinates
-
-