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
public class ResizableEditPolicy extends NonResizableEditPolicy
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 aDragEditPartsTracker
.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 Constructor Description ResizableEditPolicy()
Constructs a newResizableEditPolicy
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
createResizeHandle(java.util.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 java.util.List
createSelectionHandles()
Subclasses must implement to provide the list of handles.void
eraseSourceFeedback(Request request)
Dispatches erase requests to more specific methods.Command
getCommand(Request request)
Returnsnull
by default.protected Command
getResizeCommand(ChangeBoundsRequest request)
Returns the command contribution for the given resize request.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
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 Detail
-
ResizableEditPolicy
public ResizableEditPolicy()
Constructs a newResizableEditPolicy
.- Since:
- 3.7
-
-
Method Detail
-
createSelectionHandles
protected java.util.List 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:
SelectionHandlesEditPolicy.createSelectionHandles()
-
createResizeHandle
protected void createResizeHandle(java.util.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)
.- 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
protected ResizeTracker getResizeTracker(int direction)
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
public void eraseSourceFeedback(Request request)
Dispatches erase requests to more specific methods.- Specified by:
eraseSourceFeedback
in interfaceEditPolicy
- Overrides:
eraseSourceFeedback
in classNonResizableEditPolicy
- Parameters:
request
- the Request- See Also:
EditPolicy.eraseSourceFeedback(org.eclipse.gef.Request)
-
getCommand
public Command getCommand(Request request)
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:
EditPolicy.getCommand(org.eclipse.gef.Request)
-
getResizeCommand
protected Command getResizeCommand(ChangeBoundsRequest request)
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
public void showSourceFeedback(Request request)
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:
EditPolicy.showSourceFeedback(org.eclipse.gef.Request)
-
understandsRequest
public boolean understandsRequest(Request request)
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:
EditPolicy.understandsRequest(org.eclipse.gef.Request)
-
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
.
-
-