public abstract class AbstractDesignTool extends java.lang.Object implements IDesignTool
IDesignTool.ToolbarInitializer
Modifier and Type | Field and Description |
---|---|
protected javax.swing.ActionMap |
actionMap |
protected java.beans.PropertyChangeSupport |
changeSupport |
protected DesignableContainer |
designable |
static java.lang.String |
HANDLES_PROPERTY |
protected javax.swing.InputMap |
inputMap |
protected InteractionLayer |
interactionLayer |
protected DesignPanel |
panel |
protected AbstractDesignableWorkspace |
workspace |
Constructor and Description |
---|
AbstractDesignTool() |
Modifier and Type | Method and Description |
---|---|
protected void |
addAction(java.lang.Object key,
javax.swing.Action action)
Adds an action with a given key (usually a string).
|
protected 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.
|
protected void |
addKeyBinding(javax.swing.KeyStroke keyStroke,
java.lang.Object actionKey) |
void |
addPropertyChangeListener(java.lang.String propertyName,
java.beans.PropertyChangeListener listener)
Adds a property change listener to this design tool.
|
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.
|
protected 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.
|
javax.swing.Action |
getAction(java.lang.Object key)
Provides a way for external objects to get a hold of Actions that the tool defines.
|
java.awt.Cursor |
getCursor(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 down
|
IHighlight |
getDragHighlight()
Called while dragging as an easy way for a tool to install a highlight while dragging.
|
protected java.awt.geom.Rectangle2D |
getOffsettingBounds(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.String |
getStatusBarText(java.util.List<javax.swing.JComponent> selection,
java.awt.Point point,
int inputMask)
Calculates the currently applicable status bar text for this tool
|
IDesignTool.ToolbarInitializer |
getToolbarInitializer() |
void |
install(DesignPanel panel)
Installs the tool for the given panel.
|
boolean |
isInstalled() |
boolean |
isRelevantFor(javax.swing.JComponent component) |
protected boolean |
itemMovable(javax.swing.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,
java.util.List<javax.swing.JComponent> objects)
Checks to see if the selection is non-empty and all items are movable
|
ISelectionControl |
newSelectionControl()
Gives the tool a chance to create a new selection control object to install handles on the selection.
|
protected javax.swing.JSpinner |
newToolbarSpinner()
Creates a JSpinner that is appropriate for the toolbar.
|
protected javax.swing.JSpinner |
newToolbarSpinner(javax.swing.SpinnerModel model) |
protected javax.swing.JSpinner |
newToolbarSpinner(javax.swing.SpinnerModel model,
int width) |
void |
onClick(java.awt.Point p,
int modifiers)
Called when the user clicks in the design space.
|
protected void |
onClickAlterSelection(java.awt.Point p,
int modifiers)
Performs selection alteration from clicking.
|
void |
onDoubleClick(java.awt.Point p,
int mofidiers)
Called when the user double-clicks
|
void |
onDrag(java.awt.Point startPoint,
java.awt.Point lastPoint,
java.awt.Rectangle r,
int modifiers)
Called while the user is dragging.
|
void |
onDragEnd(java.awt.Point startPoint,
java.awt.Point lastPoint,
java.awt.Rectangle r,
int modifiers)
Called when the user stops dragging.
|
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.
|
void |
onKeyEvent(java.awt.event.KeyEvent e,
boolean pressed)
Delegates the key event using field AbstractDesignTool.inputMap field.
|
void |
onMove(java.awt.Point p,
int modifiers) |
void |
onPopupTrigger(java.awt.Point p,
int modifiers)
Called when the user issues a click that matches the current system's notion of a popup-menu trigger
|
void |
onPress(java.awt.Point p,
int modifiers)
Called when the user presses the mouse in the design space.
|
void |
onRelease(java.awt.Point p,
int modifiers)
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(java.lang.String propertyName,
java.beans.PropertyChangeListener listener) |
void |
uninstall()
Uninstalls the tool.
|
public static final java.lang.String HANDLES_PROPERTY
protected DesignPanel panel
protected AbstractDesignableWorkspace workspace
protected InteractionLayer interactionLayer
protected DesignableContainer designable
protected javax.swing.InputMap inputMap
protected javax.swing.ActionMap actionMap
protected java.beans.PropertyChangeSupport changeSupport
protected javax.swing.JComponent findDropContainer(java.awt.geom.Point2D point)
public IDesignTool.ToolbarInitializer getToolbarInitializer()
getToolbarInitializer
in interface IDesignTool
protected javax.swing.JSpinner newToolbarSpinner()
protected javax.swing.JSpinner newToolbarSpinner(javax.swing.SpinnerModel model)
protected javax.swing.JSpinner newToolbarSpinner(javax.swing.SpinnerModel model, int width)
public java.awt.Cursor getCursor(java.awt.Point point, int inputEventMask)
IDesignTool
getCursor
in interface IDesignTool
public void onPopupTrigger(java.awt.Point p, int modifiers)
IDesignTool
onPopupTrigger
in interface IDesignTool
public void onClick(java.awt.Point p, int modifiers)
IDesignTool
onClick
in interface IDesignTool
p
- The point at which they clicked. Relative to the designable container.modifiers
- A bitmask of modifiers. Comes from InputEvent.getModifiersEx()
public void onDoubleClick(java.awt.Point p, int mofidiers)
IDesignTool
onDoubleClick
in interface IDesignTool
public void onMove(java.awt.Point p, int modifiers)
onMove
in interface IDesignTool
public void onPress(java.awt.Point p, int modifiers)
IDesignTool
onPress
in interface IDesignTool
p
- The point at which they pressed. Relative to the designable container.modifiers
- A bitmask of modifiers. Comes from InputEvent.getModifiersEx()
public void onRelease(java.awt.Point p, int modifiers)
IDesignTool
onRelease
in interface IDesignTool
p
- The point at which they pressed. Relative to the designable container.modifiers
- A bitmask of modifiers. Comes from InputEvent.getModifiersEx()
public void onDragStart(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)
onDragStart
in interface IDesignTool
public void onDrag(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)
onDrag
in interface IDesignTool
public void onDragEnd(java.awt.Point startPoint, java.awt.Point lastPoint, java.awt.Rectangle r, int modifiers)
onDragEnd
in interface IDesignTool
protected boolean onRightClickSwitchToSelectionTool(int modifiers)
protected void onClickAlterSelection(java.awt.Point p, int modifiers)
public boolean isRelevantFor(javax.swing.JComponent component)
public void onKeyEvent(java.awt.event.KeyEvent e, boolean pressed)
addKeyBinding(int, int, Object)
methods.onKeyEvent
in interface IDesignTool
protected void addKeyBinding(int keyCode, int modifiers, java.lang.Object actionKey)
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.protected void addKeyBinding(javax.swing.KeyStroke keyStroke, java.lang.Object actionKey)
protected void addAction(java.lang.Object key, javax.swing.Action action)
public javax.swing.Action getAction(java.lang.Object key)
IDesignTool
SelectionTool
defines a number of alignment and z-order actions.getAction
in interface IDesignTool
public ISelectionControl newSelectionControl()
IDesignTool
newSelectionControl
in interface IDesignTool
public java.lang.String getStatusBarText(java.util.List<javax.swing.JComponent> selection, java.awt.Point point, int inputMask)
IDesignTool
getStatusBarText
in interface IDesignTool
public IHighlight getDragHighlight()
IDesignTool
getDragHighlight
in interface IDesignTool
public void install(DesignPanel panel)
IDesignTool
install
in interface IDesignTool
public void uninstall()
IDesignTool
uninstall
in interface IDesignTool
public boolean isInstalled()
public static boolean movable(DesignableDelegate delegate, java.util.List<javax.swing.JComponent> objects)
protected boolean itemMovable(javax.swing.JComponent item)
protected java.util.Map<javax.swing.JComponent,java.awt.geom.Rectangle2D> getOriginalBounds(java.util.List<javax.swing.JComponent> items)
protected java.awt.geom.Rectangle2D getOffsettingBounds(DesignableDelegate delegate, javax.swing.JComponent dropContainer)
public void addPropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
IDesignTool
IDesignTool.newSelectionControl()
will be called again and the
handles will be updated.addPropertyChangeListener
in interface IDesignTool
public void removePropertyChangeListener(java.lang.String propertyName, java.beans.PropertyChangeListener listener)
removePropertyChangeListener
in interface IDesignTool
public static java.awt.Cursor createCursor(javax.swing.ImageIcon image, java.lang.String name, int anchorX, int anchorY)