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 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
Constructor and Description
`ResizableEditPolicy()` Constructs a new `ResizableEditPolicy`.

### Method Summary

Methods
`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:

- `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 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:

- `PositionConstants.NORTH`
- `PositionConstants.SOUTH`
- `PositionConstants.EAST`
- `PositionConstants.WEST`

or `PositionConstants.NONE`.