org.eclipse.gef.editpolicies

## Class TreeContainerEditPolicy

- java.lang.Object
- - org.eclipse.gef.editpolicies.AbstractEditPolicy
  - - org.eclipse.gef.editpolicies.TreeContainerEditPolicy

All Implemented Interfaces:
  EditPolicy, RequestConstants

Direct Known Subclasses:
  AbstractTreeContainerEditPolicy

    public abstract class TreeContainerEditPolicy
    extends AbstractEditPolicy

An EditPolicy for handling ADDS, MOVES, and CREATES on a `TreeEditPart` .

This EditPolicy is responsible for displaying the insertion feedback in the Tree during the appropriate interactions.

This EditPolicy factors the `getCommand(Request)` into three different abstract methods which subclasses must implement.

Since:
  2.0

### Field Summary

### 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
`TreeContainerEditPolicy()`

### Method Summary

Methods
`void` `eraseTargetFeedback(Request req)` Does nothing by default.
`protected int` `findIndexOfTreeItemAt(Point pt)` Calculates the index of the TreeItem at given point.
`protected TreeItem` `findTreeItemAt(Point pt)` Calculates the `TreeItem` at a specified `Point`.
`protected abstract Command` `getAddCommand(ChangeBoundsRequest request)` Returns a Command for adding the children to the container.
`Command` `getCommand(Request req)` Returns `null` by default.
`protected abstract Command` `getCreateCommand(CreateRequest request)` Returns a Command for creating the object inside the container.
`protected abstract Command` `getMoveChildrenCommand(ChangeBoundsRequest request)` Returns a Command for moving the children within the container.
`EditPart` `getTargetEditPart(Request req)` Returns the host EditPart when appropriate.
`void` `showTargetFeedback(Request req)` Does nothing by default.

### Methods inherited from class org.eclipse.gef.editpolicies.AbstractEditPolicy

`activate, deactivate, debugFeedback, eraseSourceFeedback, getHost, setHost, showSourceFeedback, toString, understandsRequest`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### TreeContainerEditPolicy

    public TreeContainerEditPolicy()

### Method Detail

#### getAddCommand

    protected abstract Command getAddCommand(ChangeBoundsRequest request)

Returns a Command for adding the children to the container.

Parameters:
  `request` - the Request to add.
Returns:
  Command `null` or a Command to perform the add

#### getCreateCommand

    protected abstract Command getCreateCommand(CreateRequest request)

Returns a Command for creating the object inside the container.

Parameters:
  `request` - the CreateRequest
Returns:
  Command `null` or a Command to perform the create

#### getMoveChildrenCommand

    protected abstract Command getMoveChildrenCommand(ChangeBoundsRequest request)

Returns a Command for moving the children within the container.

Parameters:
  `request` - the Request to move
Returns:
  Command `null` or a Command to perform the move

#### eraseTargetFeedback

    public void eraseTargetFeedback(Request req)

Description copied from class: `AbstractEditPolicy`
Does nothing by default.

Specified by:
  `eraseTargetFeedback` in interface `EditPolicy`
Overrides:
  `eraseTargetFeedback` in class `AbstractEditPolicy`
Parameters:
  `req` - the Request
See Also:
  `EditPolicy.eraseTargetFeedback(Request)`

#### findIndexOfTreeItemAt

    protected final int findIndexOfTreeItemAt(Point pt)

Calculates the index of the TreeItem at given point.

Parameters:
  `pt` - the Point in the Viewer
Returns:
  the index of the TreeItem

#### findTreeItemAt

    protected final TreeItem findTreeItemAt(Point pt)

Calculates the `TreeItem` at a specified `Point`.

Parameters:
  `pt` - the draw2d Point
Returns:
  `null` or the TreeItem

#### getCommand

    public Command getCommand(Request req)

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 `AbstractEditPolicy`
Parameters:
  `req` - the Request
Returns:
  `null` or a Command contribution
See Also:
  `EditPolicy.getCommand(Request)`

#### getTargetEditPart

    public EditPart getTargetEditPart(Request req)

Returns the host EditPart when appropriate. Targeting is done by checking if the mouse is clearly over the host's TreeItem.

Specified by:
  `getTargetEditPart` in interface `EditPolicy`
Overrides:
  `getTargetEditPart` in class `AbstractEditPolicy`
Parameters:
  `req` - the Request
Returns:
  `null` or the appropriate target `EditPart`
See Also:
  `EditPolicy.getTargetEditPart(Request)`

#### showTargetFeedback

    public void showTargetFeedback(Request req)

Description copied from class: `AbstractEditPolicy`
Does nothing by default.

Specified by:
  `showTargetFeedback` in interface `EditPolicy`
Overrides:
  `showTargetFeedback` in class `AbstractEditPolicy`
Parameters:
  `req` - the Request
See Also:
  `EditPolicy.showTargetFeedback(Request)`