Class AbstractDesignTool
java.lang.Object
com.inductiveautomation.ignition.designer.designable.tools.AbstractDesignTool
- All Implemented Interfaces:
IDesignTool
- Direct Known Subclasses:
AbstractLayoutTool
,AbstractShapeTool
,EyedropperTool
,GradientTool
,InstantiationTool
,LineTool
,NullTool
,PasteTool
,PencilTool
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.inductiveautomation.ignition.designer.designable.IDesignTool
IDesignTool.ToolbarInitializer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ActionMap
protected PropertyChangeSupport
protected DesignableContainer
static final String
protected InputMap
protected InteractionLayer
protected DesignPanel
protected AbstractDesignableWorkspace
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Adds an action with a given key (usually a string).protected void
addKeyBinding
(int keyCode, int modifiers, Object actionKey) Adds a key binding, creating the KeyStroke from the given keyCode (on press) and modifiers, and associates it with an action key.protected void
addKeyBinding
(KeyStroke keyStroke, Object actionKey) void
addPropertyChangeListener
(String propertyName, PropertyChangeListener listener) Adds a property change listener to this design tool.static Cursor
createCursor
(ImageIcon image, String name, int anchorX, int anchorY) Creates a new cursor using the given image and name.protected JComponent
findDropContainer
(Point2D point) Finds the top-most object under the given spot that the delegate designates as a container.Provides a way for external objects to get a hold of Actions that the tool defines.The cursor to use given the current event mask, which can be used to detect what keys are being held downCalled while dragging as an easy way for a tool to install a highlight while dragging.protected Rectangle2D
getOffsettingBounds
(DesignableDelegate delegate, JComponent dropContainer) protected Map<JComponent,
Rectangle2D> getOriginalBounds
(List<JComponent> items) Returns a map of Object to Rectangle.getStatusBarText
(List<JComponent> selection, Point point, int inputMask) Calculates the currently applicable status bar text for this toolvoid
install
(DesignPanel panel) Installs the tool for the given panel.boolean
boolean
isRelevantFor
(JComponent component) protected boolean
itemMovable
(JComponent item) Returns true if the item is non-null and the delegate claims that it is movable and unlocked.static boolean
movable
(DesignableDelegate delegate, List<JComponent> objects) Checks to see if the selection is non-empty and all items are movableGives the tool a chance to create a new selection control object to install handles on the selection.protected JSpinner
Creates a JSpinner that is appropriate for the toolbar.protected JSpinner
newToolbarSpinner
(SpinnerModel model) protected JSpinner
newToolbarSpinner
(SpinnerModel model, int width) void
Called when the user clicks in the design space.protected void
onClickAlterSelection
(Point p, int modifiers) Performs selection alteration from clicking.void
onDoubleClick
(Point p, int mofidiers) Called when the user double-clicksvoid
Called while the user is dragging.void
Called when the user stops dragging.void
onDragStart
(Point startPoint, Point lastPoint, Rectangle r, int modifiers) Called when the user start's dragging while this tool is active.void
onKeyEvent
(KeyEvent e, boolean pressed) Delegates the key event using field AbstractDesignTool.inputMap field.void
void
onPopupTrigger
(Point p, int modifiers) Called when the user issues a click that matches the current system's notion of a popup-menu triggervoid
Called when the user presses the mouse in the design space.void
Called when the user presses the mouse in the design space.protected boolean
onRightClickSwitchToSelectionTool
(int modifiers) Use on onPress to test for a right click.void
removePropertyChangeListener
(String propertyName, PropertyChangeListener listener) void
Uninstalls the tool.
-
Field Details
-
HANDLES_PROPERTY
- See Also:
-
panel
-
workspace
-
interactionLayer
-
designable
-
inputMap
-
actionMap
-
changeSupport
-
-
Constructor Details
-
AbstractDesignTool
public AbstractDesignTool()
-
-
Method Details
-
findDropContainer
Finds the top-most object under the given spot that the delegate designates as a container. Point should be specified in unzoomed (logical) coordinates. -
getToolbarInitializer
- Specified by:
getToolbarInitializer
in interfaceIDesignTool
-
newToolbarSpinner
Creates a JSpinner that is appropriate for the toolbar. -
newToolbarSpinner
-
newToolbarSpinner
-
getCursor
Description copied from interface:IDesignTool
The cursor to use given the current event mask, which can be used to detect what keys are being held down- Specified by:
getCursor
in interfaceIDesignTool
-
onPopupTrigger
Description copied from interface:IDesignTool
Called when the user issues a click that matches the current system's notion of a popup-menu trigger- Specified by:
onPopupTrigger
in interfaceIDesignTool
-
onClick
Description copied from interface:IDesignTool
Called when the user clicks in the design space.- Specified by:
onClick
in interfaceIDesignTool
- Parameters:
p
- The point at which they clicked. Relative to the designable container.modifiers
- A bitmask of modifiers. Comes fromInputEvent.getModifiersEx()
-
onDoubleClick
Description copied from interface:IDesignTool
Called when the user double-clicks- Specified by:
onDoubleClick
in interfaceIDesignTool
-
onMove
- Specified by:
onMove
in interfaceIDesignTool
-
onPress
Description copied from interface:IDesignTool
Called when the user presses the mouse in the design space.- Specified by:
onPress
in interfaceIDesignTool
- Parameters:
p
- The point at which they pressed. Relative to the designable container.modifiers
- A bitmask of modifiers. Comes fromInputEvent.getModifiersEx()
-
onRelease
Description copied from interface:IDesignTool
Called when the user presses the mouse in the design space.- Specified by:
onRelease
in interfaceIDesignTool
- Parameters:
p
- The point at which they pressed. Relative to the designable container.modifiers
- A bitmask of modifiers. Comes fromInputEvent.getModifiersEx()
-
onDragStart
Called when the user start's dragging while this tool is active. All coordinates are relative to the interaction panel and are in zoomed space.- Specified by:
onDragStart
in interfaceIDesignTool
-
onDrag
Called while the user is dragging. All coordinates are relative to the interaction panel and are in zoomed space.- Specified by:
onDrag
in interfaceIDesignTool
-
onDragEnd
Called when the user stops dragging. All coordinates are relative to the interaction panel and are in zoomed space.- Specified by:
onDragEnd
in interfaceIDesignTool
-
onRightClickSwitchToSelectionTool
protected boolean onRightClickSwitchToSelectionTool(int modifiers) Use on onPress to test for a right click. If it is a right click, then the selection tool will be activated and true will be returned. -
onClickAlterSelection
Performs selection alteration from clicking. Handles multi-selection and alt-based z-order walkdown selection. -
isRelevantFor
-
onKeyEvent
Delegates the key event using field AbstractDesignTool.inputMap field. Add key bindings using theaddKeyBinding(int, int, Object)
methods.- Specified by:
onKeyEvent
in interfaceIDesignTool
-
addKeyBinding
Adds a key binding, creating the KeyStroke from the given keyCode (on press) and modifiers, and associates it with an action key. The action should be added first.- Parameters:
keyCode
- an int specifying the numeric code for a keyboard keymodifiers
- Note that these are the basic modifiers, not the "DOWN" modifiers, from InputEvent. For example:InputEvent.ALT_MASK
actionKey
- the actionMapKey to apply to the modifier. If null, will remove a mapping.
-
addKeyBinding
-
addAction
Adds an action with a given key (usually a string). Actions should be added before their keystrokes. -
getAction
Description copied from interface:IDesignTool
Provides a way for external objects to get a hold of Actions that the tool defines. For example, theSelectionTool
defines a number of alignment and z-order actions.- Specified by:
getAction
in interfaceIDesignTool
-
newSelectionControl
Description copied from interface:IDesignTool
Gives the tool a chance to create a new selection control object to install handles on the selection. Called on the active tool when the selection changes or after a tool is first installed.- Specified by:
newSelectionControl
in interfaceIDesignTool
-
getStatusBarText
Description copied from interface:IDesignTool
Calculates the currently applicable status bar text for this tool- Specified by:
getStatusBarText
in interfaceIDesignTool
-
getDragHighlight
Description copied from interface:IDesignTool
Called while dragging as an easy way for a tool to install a highlight while dragging.- Specified by:
getDragHighlight
in interfaceIDesignTool
-
install
Description copied from interface:IDesignTool
Installs the tool for the given panel. Tools are built to be re-used by repeatedly being installed and then uninstalled as tools get switched out.- Specified by:
install
in interfaceIDesignTool
-
uninstall
public void uninstall()Description copied from interface:IDesignTool
Uninstalls the tool.- Specified by:
uninstall
in interfaceIDesignTool
-
isInstalled
public boolean isInstalled() -
movable
Checks to see if the selection is non-empty and all items are movable -
itemMovable
Returns true if the item is non-null and the delegate claims that it is movable and unlocked. -
getOriginalBounds
Returns a map of Object to Rectangle. Each rectangle is the bounds (relative to its parent) of the object for each object in the items list. -
getOffsettingBounds
-
addPropertyChangeListener
Description copied from interface:IDesignTool
Adds a property change listener to this design tool. The workspace will listen for these properties:- "handles": When this property changes,
IDesignTool.newSelectionControl()
will be called again and the handles will be updated.
- Specified by:
addPropertyChangeListener
in interfaceIDesignTool
- "handles": When this property changes,
-
removePropertyChangeListener
- Specified by:
removePropertyChangeListener
in interfaceIDesignTool
-
createCursor
Creates a new cursor using the given image and name. The anchor point must be a point within the image that will be used as the actual "tip" of the cursor. The image canvas will be expanded so that it matches Toolkit.getBestCursorSize()
-