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

## Method Summary

Modifier and Type
Method
Description
`void`
`eraseTargetFeedback(Request req)`
Does nothing by default.
`protected final int`
`findIndexOfTreeItemAt(org.eclipse.draw2d.geometry.Point pt)`
Calculates the index of the TreeItem at given point.
`protected final TreeItem`
`findTreeItemAt(org.eclipse.draw2d.geometry.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 Details

### TreeContainerEditPolicy

public TreeContainerEditPolicy()

## Method Details

### 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(org.eclipse.draw2d.geometry.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(org.eclipse.draw2d.geometry.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)`