Package org.eclipse.gef.editpolicies

# Class GraphicalNodeEditPolicy

java.lang.Object
org.eclipse.gef.editpolicies.AbstractEditPolicy
org.eclipse.gef.editpolicies.GraphicalEditPolicy
org.eclipse.gef.editpolicies.GraphicalNodeEditPolicy

All Implemented Interfaces:
  `EditPolicy`, `RequestConstants`

public abstract class GraphicalNodeEditPolicy extends GraphicalEditPolicy
A GraphicalNodeEditPolicy is responsible for creating and reconnecting connections graphically. Created on :Nov 11, 2002

Since:
  2.0

## Field Summary

Fields
Modifier and Type
Field
Description
`protected org.eclipse.draw2d.Connection`
`connectionFeedback`
The connection feedback displayed during creates
`protected FeedbackHelper`
`feedbackHelper`
the current FeedbackHelper

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

## Method Summary

Modifier and Type
Method
Description
`protected org.eclipse.draw2d.Connection`
`createDummyConnection(Request req)`
Returns a connection to be used as feeback during creates.
`void`
`deactivate()`
Does nothing by default.
`protected void`
`eraseCreationFeedback(CreateConnectionRequest request)`
Erases connection feedback if necessary.
`void`
`eraseSourceFeedback(Request request)`
Calls `eraseCreationFeedback(CreateConnectionRequest)` when appropriate.
`protected void`
`eraseTargetConnectionFeedback(DropRequest request)`
Override to erase target feedback.
`void`
`eraseTargetFeedback(Request request)`
Calls `eraseTargetConnectionFeedback(DropRequest)` when appropriate.
`Command`
`getCommand(Request request)`
Factors the request into one of four abstract methods.
`protected abstract Command`
`getConnectionCompleteCommand(CreateConnectionRequest request)`
Returns the Command that will create the connection.
`protected abstract Command`
`getConnectionCreateCommand(CreateConnectionRequest request)`
Returns the command that represents the first half of creating a connection.
`protected org.eclipse.draw2d.ConnectionRouter`
`getDummyConnectionRouter(CreateConnectionRequest request)`
Returns the ConnectionRouter for the creation feedback's connection.
`protected FeedbackHelper`
`getFeedbackHelper(CreateConnectionRequest request)`
Returns the FeedbackHelper that is ready to use.
`protected abstract Command`
`getReconnectSourceCommand(ReconnectRequest request)`
Returns the `Command` to reconnect a connection's source end to the host.
`protected abstract Command`
`getReconnectTargetCommand(ReconnectRequest request)`
Returns the `Command` to reconnect a connection's target end to the host.
`protected org.eclipse.draw2d.ConnectionAnchor`
`getSourceConnectionAnchor(CreateConnectionRequest request)`
Called during the display of creation feedback to snap the feedback to the nearest source ConnectionAnchor.
`protected org.eclipse.draw2d.ConnectionAnchor`
`getTargetConnectionAnchor(CreateConnectionRequest request)`
Called during the display of creation feedback to snap the feedback to the nearest target ConnectionAnchor.
`EditPart`
`getTargetEditPart(Request request)`
Returns the host for the appropriate `Requests`.
`protected void`
`showCreationFeedback(CreateConnectionRequest request)`
Shows feedback during a creation.
`void`
`showSourceFeedback(Request request)`
calls `showCreationFeedback(CreateConnectionRequest)` when appropriate.
`protected void`
`showTargetConnectionFeedback(DropRequest request)`
Override to show target connection feedback.
`void`
`showTargetFeedback(Request request)`
Calls `showTargetConnectionFeedback(DropRequest)` when appropriate.

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

`addFeedback, getFeedbackLayer, getHost, getHostFigure, getLayer, removeFeedback`

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

`activate, debugFeedback, setHost, toString, understandsRequest`

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

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

## Field Details

### feedbackHelper

protected FeedbackHelper feedbackHelper
the current FeedbackHelper

### connectionFeedback

protected org.eclipse.draw2d.Connection connectionFeedback
The connection feedback displayed during creates

## Constructor Details

### GraphicalNodeEditPolicy

public GraphicalNodeEditPolicy()

## Method Details

### createDummyConnection

protected org.eclipse.draw2d.Connection createDummyConnection(Request req)
Returns a connection to be used as feeback during creates.

Parameters:
  `req` - the operation being performed
Returns:
  a connection to use as feedback

### deactivate

public void deactivate()
Description copied from class: `AbstractEditPolicy`
Does nothing by default.

Specified by:
  `deactivate` in interface `EditPolicy`
Overrides:
  `deactivate` in class `AbstractEditPolicy`
See Also:
  - `EditPolicy.deactivate()`

### eraseCreationFeedback

protected void eraseCreationFeedback(CreateConnectionRequest request)
Erases connection feedback if necessary. Frees unused fields.

Parameters:
  `request` - the CreateConnectionRequest

### eraseSourceFeedback

public void eraseSourceFeedback(Request request)
Calls `eraseCreationFeedback(CreateConnectionRequest)` when appropriate.

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

### eraseTargetConnectionFeedback

protected void eraseTargetConnectionFeedback(DropRequest request)
Override to erase target feedback. Does nothing by default.

Parameters:
  `request` - the DropRequest

### eraseTargetFeedback

public void eraseTargetFeedback(Request request)
Calls `eraseTargetConnectionFeedback(DropRequest)` when appropriate.

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

### getCommand

public Command getCommand(Request request)
Factors the request into one of four abstract methods. Subclasses must implement these methods.

Specified by:
  `getCommand` in interface `EditPolicy`
Overrides:
  `getCommand` in class `AbstractEditPolicy`
Parameters:
  `request` - the Request
Returns:
  `null` or a Command contribution
See Also:
  - `EditPolicy.getCommand(Request)`

### getConnectionCompleteCommand

protected abstract Command getConnectionCompleteCommand(CreateConnectionRequest request)
Returns the Command that will create the connection. This is second part of creation. `CreateConnectionRequest.getStartCommand()` is used here to obtain the contribution from the EditPart from which the User started the creation.

Parameters:
  `request` - the CreateConnectionRequest
Returns:
  the complete command to create a connection

### getConnectionCreateCommand

protected abstract Command getConnectionCreateCommand(CreateConnectionRequest request)
Returns the command that represents the first half of creating a connection. In case the first half of the connection creation was successful (i.e. the returned start command is executable), the target edit part is then responsible of creating a Command that represents the entire creation. In case the target edit part needs to refer to the start command to achieve this, the start command may be registered on the passed in create request (see `CreateConnectionRequest.setStartCommand(Command)`) before returning it here.

Parameters:
  `request` - the CreateConnectionRequest
Returns:
  a Command representing half of a connection creation
See Also:
  - `getConnectionCompleteCommand(CreateConnectionRequest)`

### getDummyConnectionRouter

protected org.eclipse.draw2d.ConnectionRouter getDummyConnectionRouter(CreateConnectionRequest request)
Returns the ConnectionRouter for the creation feedback's connection.

Parameters:
  `request` - the create request
Returns:
  a connection router
Since:
  3.2

### getFeedbackHelper

protected FeedbackHelper getFeedbackHelper(CreateConnectionRequest request)
Returns the FeedbackHelper that is ready to use. The feedback helper must be configured with the connection that will be used to display feedback, and that connection must be added to the appropriate layer in the diagram.

Parameters:
  `request` - the CreateConnectionRequest
Returns:
  a FeedbackHelper

### getReconnectTargetCommand

protected abstract Command getReconnectTargetCommand(ReconnectRequest request)
Returns the `Command` to reconnect a connection's target end to the host.

Parameters:
  `request` - the ReconnectRequest
Returns:
  a Command

### getReconnectSourceCommand

protected abstract Command getReconnectSourceCommand(ReconnectRequest request)
Returns the `Command` to reconnect a connection's source end to the host.

Parameters:
  `request` - the ReconnectRequest
Returns:
  a Command

### getSourceConnectionAnchor

protected org.eclipse.draw2d.ConnectionAnchor getSourceConnectionAnchor(CreateConnectionRequest request)
Called during the display of creation feedback to snap the feedback to the nearest source ConnectionAnchor.

Parameters:
  `request` - CreateConnectionRequest
Returns:
  `null` or the nearest source ConnectionAnchor

### getTargetConnectionAnchor

protected org.eclipse.draw2d.ConnectionAnchor getTargetConnectionAnchor(CreateConnectionRequest request)
Called during the display of creation feedback to snap the feedback to the nearest target ConnectionAnchor.

Parameters:
  `request` - CreateConnectionRequest
Returns:
  `null` or the nearest target ConnectionAnchor

### getTargetEditPart

public EditPart getTargetEditPart(Request request)
Returns the host for the appropriate `Requests`. Returns `null` otherwise.

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

### showCreationFeedback

protected void showCreationFeedback(CreateConnectionRequest request)
Shows feedback during a creation.

Parameters:
  `request` - CreateConnectionRequest

### showSourceFeedback

public void showSourceFeedback(Request request)
calls `showCreationFeedback(CreateConnectionRequest)` when appropriate.

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

### showTargetConnectionFeedback

protected void showTargetConnectionFeedback(DropRequest request)
Override to show target connection feedback. Does nothing by default.

Parameters:
  `request` - the DropRequest

### showTargetFeedback

public void showTargetFeedback(Request request)
Calls `showTargetConnectionFeedback(DropRequest)` when appropriate.

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