GEF (MVC)
3.8.1.201211122107

org.eclipse.gef.editpolicies
Class ResizableEditPolicy

java.lang.Object
  extended by org.eclipse.gef.editpolicies.AbstractEditPolicy
      extended by org.eclipse.gef.editpolicies.GraphicalEditPolicy
          extended by org.eclipse.gef.editpolicies.SelectionEditPolicy
              extended by org.eclipse.gef.editpolicies.SelectionHandlesEditPolicy
                  extended by org.eclipse.gef.editpolicies.NonResizableEditPolicy
                      extended by 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 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
ResizableEditPolicy()
          Constructs a new ResizableEditPolicy.
 
Method Summary
protected  void createResizeHandle(java.util.List handles, int direction)
          Creates a 'resize' handle, which uses a ResizeTracker in case resizing is allowed in the respective direction, otherwise returns a drag handle by delegating to NonResizableEditPolicy.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)
          Returns null 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 or PositionConstants.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)
          Returns true 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ResizableEditPolicy

public ResizableEditPolicy()
Constructs a new ResizableEditPolicy.

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 class NonResizableEditPolicy
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 a ResizeTracker in case resizing is allowed in the respective direction, otherwise returns a drag handle by delegating to NonResizableEditPolicy.createDragHandle(List, int).

Parameters:
handles - The list of handles to add the resize handle to
direction - 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 the ResizeTracker.
Returns:
a new ResizeTracker
Since:
3.7

eraseSourceFeedback

public void eraseSourceFeedback(Request request)
Dispatches erase requests to more specific methods.

Specified by:
eraseSourceFeedback in interface EditPolicy
Overrides:
eraseSourceFeedback in class NonResizableEditPolicy
Parameters:
request - the Request
See Also:
EditPolicy.eraseSourceFeedback(org.eclipse.gef.Request)

getCommand

public Command getCommand(Request request)
Description copied from class: AbstractEditPolicy
Returns null by default. null is used to indicate that the EditPolicy does not contribute to the specified Request.

Specified by:
getCommand in interface EditPolicy
Overrides:
getCommand in class NonResizableEditPolicy
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 a RequestConstants.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:

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 interface EditPolicy
Overrides:
showSourceFeedback in class NonResizableEditPolicy
Parameters:
request - the Request
See Also:
EditPolicy.showSourceFeedback(org.eclipse.gef.Request)

understandsRequest

public boolean understandsRequest(Request request)
Description copied from class: NonResizableEditPolicy
Returns true 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 interface EditPolicy
Overrides:
understandsRequest in class NonResizableEditPolicy
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: or PositionConstants.NONE.


GEF (MVC)
3.8.1.201211122107

Copyright (c) IBM Corp. and others 2000, 2011. All Rights Reserved.