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 voidcreateResizeHandle(java.util.List handles, int direction)Creates a 'resize' handle, which uses aResizeTrackerin case resizing is allowed in the respective direction, otherwise returns a drag handle by delegating toNonResizableEditPolicy.createDragHandle(List, int).protected java.util.ListcreateSelectionHandles()Subclasses must implement to provide the list of handles.voideraseSourceFeedback(Request request)Dispatches erase requests to more specific methods.CommandgetCommand(Request request)Returnsnullby default.protected CommandgetResizeCommand(ChangeBoundsRequest request)Returns the command contribution for the given resize request.intgetResizeDirections()Returns the directions in which resizing should be allowed Valid values are bit-wise combinations of:PositionConstants.NORTHPositionConstants.SOUTHPositionConstants.EASTPositionConstants.WESTorPositionConstants.NONE.protected ResizeTrackergetResizeTracker(int direction)Returns a resize tracker for the given direction to be used by a resize handle.voidsetResizeDirections(int newDirections)Sets the directions in which handles should allow resizing.voidshowSourceFeedback(Request request)Calls other methods as appropriate.booleanunderstandsRequest(Request request)Returnstruefor 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:SelectionHandlesEditPolicySubclasses must implement to provide the list of handles.- Overrides:
createSelectionHandlesin 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 aResizeTrackerin 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:
eraseSourceFeedbackin interfaceEditPolicy- Overrides:
eraseSourceFeedbackin classNonResizableEditPolicy- Parameters:
request- the Request- See Also:
EditPolicy.eraseSourceFeedback(org.eclipse.gef.Request)
-
getCommand
public Command getCommand(Request request)
Description copied from class:AbstractEditPolicyReturnsnullby default.nullis used to indicate that the EditPolicy does not contribute to the specifiedRequest.- Specified by:
getCommandin interfaceEditPolicy- Overrides:
getCommandin classNonResizableEditPolicy- Parameters:
request- the Request- Returns:
nullor 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.NORTHPositionConstants.SOUTHPositionConstants.EASTPositionConstants.WEST
- Parameters:
newDirections- the direction in which resizing is allowed
-
showSourceFeedback
public void showSourceFeedback(Request request)
Description copied from class:NonResizableEditPolicyCalls other methods as appropriate.- Specified by:
showSourceFeedbackin interfaceEditPolicy- Overrides:
showSourceFeedbackin classNonResizableEditPolicy- Parameters:
request- the Request- See Also:
EditPolicy.showSourceFeedback(org.eclipse.gef.Request)
-
understandsRequest
public boolean understandsRequest(Request request)
Description copied from class:NonResizableEditPolicyReturnstruefor 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:
understandsRequestin interfaceEditPolicy- Overrides:
understandsRequestin classNonResizableEditPolicy- Parameters:
request- the Request- Returns:
- boolean
trueif 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.NORTHPositionConstants.SOUTHPositionConstants.EASTPositionConstants.WEST
PositionConstants.NONE.
-
-