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
 
 public abstract class AbstractDesignTool extends java.lang.Object implements IDesignTool 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface com.inductiveautomation.ignition.designer.designable.IDesignToolIDesignTool.ToolbarInitializer
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected javax.swing.ActionMapactionMapprotected java.beans.PropertyChangeSupportchangeSupportprotected DesignableContainerdesignablestatic java.lang.StringHANDLES_PROPERTYprotected javax.swing.InputMapinputMapprotected InteractionLayerinteractionLayerprotected DesignPanelpanelprotected AbstractDesignableWorkspaceworkspace
 - 
Constructor SummaryConstructors Constructor Description AbstractDesignTool()
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddAction(java.lang.Object key, javax.swing.Action action)Adds an action with a given key (usually a string).protected voidaddKeyBinding(int keyCode, int modifiers, java.lang.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 voidaddKeyBinding(javax.swing.KeyStroke keyStroke, java.lang.Object actionKey)voidaddPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)Adds a property change listener to this design tool.static java.awt.CursorcreateCursor(javax.swing.ImageIcon image, java.lang.String name, int anchorX, int anchorY)Creates a new cursor using the given image and name.protected javax.swing.JComponentfindDropContainer(java.awt.geom.Point2D point)Finds the top-most object under the given spot that the delegate designates as a container.javax.swing.ActiongetAction(java.lang.Object key)Provides a way for external objects to get a hold of Actions that the tool defines.java.awt.CursorgetCursor(java.awt.Point point, int inputEventMask)The cursor to use given the current event mask, which can be used to detect what keys are being held downIHighlightgetDragHighlight()Called while dragging as an easy way for a tool to install a highlight while dragging.protected java.awt.geom.Rectangle2DgetOffsettingBounds(DesignableDelegate delegate, javax.swing.JComponent dropContainer)protected java.util.Map<javax.swing.JComponent,java.awt.geom.Rectangle2D>getOriginalBounds(java.util.List<javax.swing.JComponent> items)Returns a map of Object to Rectangle.java.lang.StringgetStatusBarText(java.util.List<javax.swing.JComponent> selection, java.awt.Point point, int inputMask)Calculates the currently applicable status bar text for this toolIDesignTool.ToolbarInitializergetToolbarInitializer()voidinstall(DesignPanel panel)Installs the tool for the given panel.booleanisInstalled()booleanisRelevantFor(javax.swing.JComponent component)protected booleanitemMovable(javax.swing.JComponent item)Returns true if the item is non-null and the delegate claims that it is movable and unlocked.static booleanmovable(DesignableDelegate delegate, java.util.List<javax.swing.JComponent> objects)Checks to see if the selection is non-empty and all items are movableISelectionControlnewSelectionControl()Gives the tool a chance to create a new selection control object to install handles on the selection.protected javax.swing.JSpinnernewToolbarSpinner()Creates a JSpinner that is appropriate for the toolbar.protected javax.swing.JSpinnernewToolbarSpinner(javax.swing.SpinnerModel model)protected javax.swing.JSpinnernewToolbarSpinner(javax.swing.SpinnerModel model, int width)voidonClick(java.awt.Point p, int modifiers)Called when the user clicks in the design space.protected voidonClickAlterSelection(java.awt.Point p, int modifiers)Performs selection alteration from clicking.voidonDoubleClick(java.awt.Point p, int mofidiers)Called when the user double-clicksvoidonDrag(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)Called while the user is dragging.voidonDragEnd(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)Called when the user stops dragging.voidonDragStart(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)Called when the user start's dragging while this tool is active.voidonKeyEvent(java.awt.event.KeyEvent e, boolean pressed)Delegates the key event using field AbstractDesignTool.inputMap field.voidonMove(java.awt.Point p, int modifiers)voidonPopupTrigger(java.awt.Point p, int modifiers)Called when the user issues a click that matches the current system's notion of a popup-menu triggervoidonPress(java.awt.Point p, int modifiers)Called when the user presses the mouse in the design space.voidonRelease(java.awt.Point p, int modifiers)Called when the user presses the mouse in the design space.protected booleanonRightClickSwitchToSelectionTool(int modifiers)Use on onPress to test for a right click.voidremovePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)voiduninstall()Uninstalls the tool.
 
- 
- 
- 
Field Detail- 
HANDLES_PROPERTYpublic static final java.lang.String HANDLES_PROPERTY - See Also:
- Constant Field Values
 
 - 
panelprotected DesignPanel panel 
 - 
workspaceprotected AbstractDesignableWorkspace workspace 
 - 
interactionLayerprotected InteractionLayer interactionLayer 
 - 
designableprotected DesignableContainer designable 
 - 
inputMapprotected javax.swing.InputMap inputMap 
 - 
actionMapprotected javax.swing.ActionMap actionMap 
 - 
changeSupportprotected java.beans.PropertyChangeSupport changeSupport 
 
- 
 - 
Method Detail- 
findDropContainerprotected javax.swing.JComponent findDropContainer(java.awt.geom.Point2D point) Finds the top-most object under the given spot that the delegate designates as a container. Point should be specified in unzoomed (logical) coordinates.
 - 
getToolbarInitializerpublic IDesignTool.ToolbarInitializer getToolbarInitializer() - Specified by:
- getToolbarInitializerin interface- IDesignTool
 
 - 
newToolbarSpinnerprotected javax.swing.JSpinner newToolbarSpinner() Creates a JSpinner that is appropriate for the toolbar.
 - 
newToolbarSpinnerprotected javax.swing.JSpinner newToolbarSpinner(javax.swing.SpinnerModel model) 
 - 
newToolbarSpinnerprotected javax.swing.JSpinner newToolbarSpinner(javax.swing.SpinnerModel model, int width)
 - 
getCursorpublic java.awt.Cursor getCursor(java.awt.Point point, int inputEventMask)Description copied from interface:IDesignToolThe cursor to use given the current event mask, which can be used to detect what keys are being held down- Specified by:
- getCursorin interface- IDesignTool
 
 - 
onPopupTriggerpublic void onPopupTrigger(java.awt.Point p, int modifiers)Description copied from interface:IDesignToolCalled when the user issues a click that matches the current system's notion of a popup-menu trigger- Specified by:
- onPopupTriggerin interface- IDesignTool
 
 - 
onClickpublic void onClick(java.awt.Point p, int modifiers)Description copied from interface:IDesignToolCalled when the user clicks in the design space.- Specified by:
- onClickin interface- IDesignTool
- Parameters:
- p- The point at which they clicked. Relative to the designable container.
- modifiers- A bitmask of modifiers. Comes from- InputEvent.getModifiersEx()
 
 - 
onDoubleClickpublic void onDoubleClick(java.awt.Point p, int mofidiers)Description copied from interface:IDesignToolCalled when the user double-clicks- Specified by:
- onDoubleClickin interface- IDesignTool
 
 - 
onMovepublic void onMove(java.awt.Point p, int modifiers)- Specified by:
- onMovein interface- IDesignTool
 
 - 
onPresspublic void onPress(java.awt.Point p, int modifiers)Description copied from interface:IDesignToolCalled when the user presses the mouse in the design space.- Specified by:
- onPressin interface- IDesignTool
- Parameters:
- p- The point at which they pressed. Relative to the designable container.
- modifiers- A bitmask of modifiers. Comes from- InputEvent.getModifiersEx()
 
 - 
onReleasepublic void onRelease(java.awt.Point p, int modifiers)Description copied from interface:IDesignToolCalled when the user presses the mouse in the design space.- Specified by:
- onReleasein interface- IDesignTool
- Parameters:
- p- The point at which they pressed. Relative to the designable container.
- modifiers- A bitmask of modifiers. Comes from- InputEvent.getModifiersEx()
 
 - 
onDragStartpublic void onDragStart(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)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:
- onDragStartin interface- IDesignTool
 
 - 
onDragpublic void onDrag(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)Called while the user is dragging. All coordinates are relative to the interaction panel and are in zoomed space.- Specified by:
- onDragin interface- IDesignTool
 
 - 
onDragEndpublic void onDragEnd(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)Called when the user stops dragging. All coordinates are relative to the interaction panel and are in zoomed space.- Specified by:
- onDragEndin interface- IDesignTool
 
 - 
onRightClickSwitchToSelectionToolprotected 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.
 - 
onClickAlterSelectionprotected void onClickAlterSelection(java.awt.Point p, int modifiers)Performs selection alteration from clicking. Handles multi-selection and alt-based z-order walkdown selection.
 - 
isRelevantForpublic boolean isRelevantFor(javax.swing.JComponent component) 
 - 
onKeyEventpublic void onKeyEvent(java.awt.event.KeyEvent e, boolean pressed)Delegates the key event using field AbstractDesignTool.inputMap field. Add key bindings using theaddKeyBinding(int, int, Object)methods.- Specified by:
- onKeyEventin interface- IDesignTool
 
 - 
addKeyBindingprotected void addKeyBinding(int keyCode, int modifiers, java.lang.Object actionKey)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 key
- modifiers- 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.
 
 - 
addKeyBindingprotected void addKeyBinding(javax.swing.KeyStroke keyStroke, java.lang.Object actionKey)
 - 
addActionprotected void addAction(java.lang.Object key, javax.swing.Action action)Adds an action with a given key (usually a string). Actions should be added before their keystrokes.
 - 
getActionpublic javax.swing.Action getAction(java.lang.Object key) Description copied from interface:IDesignToolProvides a way for external objects to get a hold of Actions that the tool defines. For example, theSelectionTooldefines a number of alignment and z-order actions.- Specified by:
- getActionin interface- IDesignTool
 
 - 
newSelectionControlpublic ISelectionControl newSelectionControl() Description copied from interface:IDesignToolGives 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:
- newSelectionControlin interface- IDesignTool
 
 - 
getStatusBarTextpublic java.lang.String getStatusBarText(java.util.List<javax.swing.JComponent> selection, java.awt.Point point, int inputMask)Description copied from interface:IDesignToolCalculates the currently applicable status bar text for this tool- Specified by:
- getStatusBarTextin interface- IDesignTool
 
 - 
getDragHighlightpublic IHighlight getDragHighlight() Description copied from interface:IDesignToolCalled while dragging as an easy way for a tool to install a highlight while dragging.- Specified by:
- getDragHighlightin interface- IDesignTool
 
 - 
installpublic void install(DesignPanel panel) Description copied from interface:IDesignToolInstalls 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:
- installin interface- IDesignTool
 
 - 
uninstallpublic void uninstall() Description copied from interface:IDesignToolUninstalls the tool.- Specified by:
- uninstallin interface- IDesignTool
 
 - 
isInstalledpublic boolean isInstalled() 
 - 
movablepublic static boolean movable(DesignableDelegate delegate, java.util.List<javax.swing.JComponent> objects) Checks to see if the selection is non-empty and all items are movable
 - 
itemMovableprotected boolean itemMovable(javax.swing.JComponent item) Returns true if the item is non-null and the delegate claims that it is movable and unlocked.
 - 
getOriginalBoundsprotected java.util.Map<javax.swing.JComponent,java.awt.geom.Rectangle2D> getOriginalBounds(java.util.List<javax.swing.JComponent> items) 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.
 - 
getOffsettingBoundsprotected java.awt.geom.Rectangle2D getOffsettingBounds(DesignableDelegate delegate, javax.swing.JComponent dropContainer) 
 - 
addPropertyChangeListenerpublic void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)Description copied from interface:IDesignToolAdds 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:
- addPropertyChangeListenerin interface- IDesignTool
 
- "handles": When this property changes, 
 - 
removePropertyChangeListenerpublic void removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)- Specified by:
- removePropertyChangeListenerin interface- IDesignTool
 
 - 
createCursorpublic static java.awt.Cursor createCursor(javax.swing.ImageIcon image, java.lang.String name, int anchorX, int anchorY)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()
 
- 
 
-