Package org.eclipse.gef

# Interface ConnectionEditPart

All Superinterfaces:
  `EditPart`, `GraphicalEditPart`, `IAdaptable`

All Known Implementing Classes:
  `AbstractConnectionEditPart`

public interface ConnectionEditPart extends GraphicalEditPart
A specialization of `GraphicalEditPart` for representing connections. ConnectionEditParts must join a source and target EditPart. Its Figure is typically a line between two "nodes", with possible decorations on that line.

In GEF, ConnectionEditParts are structural features of their source and target "nodes", which are EditParts. However, the model does not have this requirement. The application may store the connection model in any way, or there may even be no real model. The burden is on the source and target EditPart to obtain their appropriate connections in the methods `getModelSourceConnections()` and `getModelTargetConnections()`. How this is done is application specific.

Since ConnectionEditParts are features of their node EditPart, it is those EditParts that must create and manage the connection. Creation is performed by whichever end happens to "intialize" itself first. Therefore an end always looks first in the `EditPartRegistry` to see if the connection was already created by the other end.

ConnectionEditParts are EditParts, and therefore can have children. This is a common way to implement labels and other selectable decorations on connections. Similarly, a ConnectionEditPart can also be a "node", meaning it can serve as the source or target of some other ConnectionEditPart. This makes connection to connection possible.

IMPORTANT: The need to display something as a line does not automatically mean that a ConnectionEditPart is required. There are several situations in which ConnectionEditParts should not be used. You should use ConnectionEditParts in general if:

- The connection should be selectable by the user independant of its "nodes".
- The connection can be deleted, leaving the source and target intact.
- The connection cannot exist without a source and target. A instance of when this is not true is assocations. Associations are top-level object that are children of the diagram. They are probably only valid if they have a source and target, but many applications allow you to create things in any order.

## Field Summary

### Fields inherited from interface org.eclipse.gef.EditPart

`SELECTED, SELECTED_NONE, SELECTED_PRIMARY`

## Method Summary

Modifier and Type
Method
Description
`EditPart`
`getSource()`
`EditPart`
`getTarget()`
`void`
`setSource(EditPart source)`
Sets the source of this connection.
`void`
`setTarget(EditPart target)`
Sets thetarget of this connection.

### Methods inherited from interface org.eclipse.gef.EditPart

`activate, addEditPartListener, addNotify, deactivate, eraseSourceFeedback, eraseTargetFeedback, getCommand, getDragTracker, getEditPolicy, getModel, getParent, getRoot, getSelected, getTargetEditPart, getViewer, hasFocus, installEditPolicy, isActive, isSelectable, performRequest, refresh, removeEditPartListener, removeEditPolicy, removeNotify, setFocus, setModel, setParent, setSelected, showSourceFeedback, showTargetFeedback, understandsRequest`

### Methods inherited from interface org.eclipse.gef.GraphicalEditPart

`addNodeListener, getChildren, getContentPane, getFigure, getSourceConnections, getTargetConnections, removeNodeListener, setLayoutConstraint`

### Methods inherited from interface org.eclipse.core.runtime.IAdaptable

`getAdapter`

## Method Details

### getSource

EditPart getSource()

Returns:
  the EditPart at the source end of this connection.

### getTarget

EditPart getTarget()

Returns:
  the EditPart at the target end of this connection.

### setSource

void setSource(EditPart source)
Sets the source of this connection.

Parameters:
  `source` - the source of this connection

### setTarget

void setTarget(EditPart target)
Sets thetarget of this connection.

Parameters:
  `target` - the target of this connection