Package org.eclipse.gef.editpolicies
Class ResizableEditPolicy
java.lang.Object
org.eclipse.gef.editpolicies.AbstractEditPolicy
org.eclipse.gef.editpolicies.GraphicalEditPolicy
org.eclipse.gef.editpolicies.SelectionEditPolicy
org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
org.eclipse.gef.editpolicies.NonResizableEditPolicy
org.eclipse.gef.editpolicies.ResizableEditPolicy
- All Implemented Interfaces:
IAdaptable
,EditPolicy
,RequestConstants
Provides support for selecting, positioning, and resizing an edit part.
Selection is indicated via eight square handles along the editpart's figure,
and a rectangular handle that outlines the edit part with a 1-pixel black
line. The eight square handles will resize the current selection in the eight
primary directions. The rectangular handle will drag the current selection
using a
DragEditPartsTracker
.
During feedback, a rectangle filled using XOR and outlined with dashes is drawn. Subclasses may tailor the feedback.
-
Field Summary
Fields inherited from class org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
handles
Fields inherited from interface org.eclipse.gef.EditPolicy
COMPONENT_ROLE, CONNECTION_BENDPOINTS_ROLE, CONNECTION_ENDPOINTS_ROLE, CONNECTION_ROLE, CONTAINER_ROLE, DIRECT_EDIT_ROLE, GRAPHICAL_NODE_ROLE, LAYOUT_ROLE, NODE_ROLE, PRIMARY_DRAG_ROLE, SELECTION_FEEDBACK_ROLE, TREE_CONTAINER_ROLE
Fields inherited from interface org.eclipse.gef.RequestConstants
REQ_ADD, REQ_ALIGN, REQ_ALIGN_CHILDREN, REQ_CLONE, REQ_CONNECTION_END, REQ_CONNECTION_START, REQ_CREATE, REQ_CREATE_BENDPOINT, REQ_DELETE, REQ_DELETE_DEPENDANT, REQ_DIRECT_EDIT, REQ_MOVE, REQ_MOVE_BENDPOINT, REQ_MOVE_CHILDREN, REQ_OPEN, REQ_ORPHAN, REQ_ORPHAN_CHILDREN, REQ_RECONNECT_SOURCE, REQ_RECONNECT_TARGET, REQ_RESIZE, REQ_RESIZE_CHILDREN, REQ_SELECTION, REQ_SELECTION_HOVER
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
createResizeHandle
(List handles, int direction) Creates a 'resize' handle, which uses aResizeTracker
in case resizing is allowed in the respective direction, otherwise returns a drag handle by delegating toNonResizableEditPolicy.createDragHandle(List, int)
.protected List
Subclasses must implement to provide the list of handles.void
eraseSourceFeedback
(Request request) Dispatches erase requests to more specific methods.getCommand
(Request request) Returnsnull
by default.protected Command
getResizeCommand
(ChangeBoundsRequest request) Returns the command contribution for the given resize request.int
Returns the directions in which resizing should be allowed Valid values are bit-wise combinations of:PositionConstants.NORTH
PositionConstants.SOUTH
PositionConstants.EAST
PositionConstants.WEST
orPositionConstants.NONE
.protected ResizeTracker
getResizeTracker
(int direction) Returns a resize tracker for the given direction to be used by a resize handle.void
setResizeDirections
(int newDirections) Sets the directions in which handles should allow resizing.void
showSourceFeedback
(Request request) Calls other methods as appropriate.boolean
understandsRequest
(Request request) Returnstrue
for move, align, add, and orphan request types.Methods inherited from class org.eclipse.gef.editpolicies.NonResizableEditPolicy
createDragHandle, createDragSourceFeedbackFigure, createMoveHandle, deactivate, eraseChangeBoundsFeedback, getAlignCommand, getDragSourceFeedbackFigure, getDragTracker, getInitialFeedbackBounds, getMoveCommand, getOrphanCommand, getSelectTracker, hideFocus, isDragAllowed, setDragAllowed, showChangeBoundsFeedback, showFocus
Methods inherited from class org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
addSelectionHandles, getAdapter, hideSelection, removeSelectionHandles, showSelection
Methods inherited from class org.eclipse.gef.editpolicies.SelectionEditPolicy
activate, addSelectionListener, getTargetEditPart, removeSelectionListener, setFocus, setSelectedState, showPrimarySelection
Methods inherited from class org.eclipse.gef.editpolicies.GraphicalEditPolicy
addFeedback, getFeedbackLayer, getHostFigure, getLayer, removeFeedback
Methods inherited from class org.eclipse.gef.editpolicies.AbstractEditPolicy
debugFeedback, eraseTargetFeedback, getHost, setHost, showTargetFeedback, toString
-
Constructor Details
-
ResizableEditPolicy
public ResizableEditPolicy()Constructs a newResizableEditPolicy
.- Since:
- 3.7
-
-
Method Details
-
createSelectionHandles
Description copied from class:SelectionHandlesEditPolicy
Subclasses must implement to provide the list of handles.- Overrides:
createSelectionHandles
in classNonResizableEditPolicy
- Returns:
- List of handles; cannot be
null
- See Also:
-
createResizeHandle
Creates a 'resize' handle, which uses aResizeTracker
in case resizing is allowed in the respective direction, otherwise returns a drag handle by delegating toNonResizableEditPolicy.createDragHandle(List, int)
.- Parameters:
handles
- The list of handles to add the resize handle todirection
- A position constant indicating the direction to create the handle for- Since:
- 3.7
-
getResizeTracker
Returns a resize tracker for the given direction to be used by a resize handle.- Parameters:
direction
- the resize direction for theResizeTracker
.- Returns:
- a new
ResizeTracker
- Since:
- 3.7
-
eraseSourceFeedback
Dispatches erase requests to more specific methods.- Specified by:
eraseSourceFeedback
in interfaceEditPolicy
- Overrides:
eraseSourceFeedback
in classNonResizableEditPolicy
- Parameters:
request
- the Request- See Also:
-
getCommand
Description copied from class:AbstractEditPolicy
Returnsnull
by default.null
is used to indicate that the EditPolicy does not contribute to the specifiedRequest
.- Specified by:
getCommand
in interfaceEditPolicy
- Overrides:
getCommand
in classNonResizableEditPolicy
- Parameters:
request
- the Request- Returns:
null
or a Command contribution- See Also:
-
getResizeCommand
Returns the command contribution for the given resize request. By default, the request is re-dispatched to the host's parent as aRequestConstants.REQ_RESIZE_CHILDREN
. The parent's edit policies determine how to perform the resize based on the layout manager in use.- Parameters:
request
- the resize request- Returns:
- the command contribution obtained from the parent
-
setResizeDirections
public void setResizeDirections(int newDirections) Sets the directions in which handles should allow resizing. Valid values are bit-wise combinations of:PositionConstants.NORTH
PositionConstants.SOUTH
PositionConstants.EAST
PositionConstants.WEST
- Parameters:
newDirections
- the direction in which resizing is allowed
-
showSourceFeedback
Description copied from class:NonResizableEditPolicy
Calls other methods as appropriate.- Specified by:
showSourceFeedback
in interfaceEditPolicy
- Overrides:
showSourceFeedback
in classNonResizableEditPolicy
- Parameters:
request
- the Request- See Also:
-
understandsRequest
Description copied from class:NonResizableEditPolicy
Returnstrue
for move, align, add, and orphan request types. This method is never called for some of these types, but they are included for possible future use.- Specified by:
understandsRequest
in interfaceEditPolicy
- Overrides:
understandsRequest
in classNonResizableEditPolicy
- Parameters:
request
- the Request- Returns:
- boolean
true
if the EditPolicy understands the specified request - See Also:
-
getResizeDirections
public int getResizeDirections()Returns the directions in which resizing should be allowed Valid values are bit-wise combinations of:PositionConstants.NORTH
PositionConstants.SOUTH
PositionConstants.EAST
PositionConstants.WEST
PositionConstants.NONE
.
-