Package org.eclipse.gef.editpolicies

# Class SelectionEditPolicy

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

All Implemented Interfaces:
  `EditPolicy`, `RequestConstants`

Direct Known Subclasses:
  `ScrollableSelectionFeedbackEditPolicy`, `SelectionHandlesEditPolicy`

public abstract class SelectionEditPolicy extends GraphicalEditPolicy
A GraphicalEditPolicy that is sensitive to the host's selection. The overall selection of the host EditPart includes whether or not it has focus. Subclasses will typically decorate the GraphicalEditPart with things like selection handles and/or focus feedback.

This EditPolicy adds itself as an `EditPartListener` so that it can observe selection. When selection or focus changes, the EditPolicy will update itself and call the appropriate methods.

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
`SelectionEditPolicy()`

## Method Summary

Modifier and Type
Method
Description
`void`
`activate()`
Extends activate to hook the appropriate listener and to initialize the visual changes for representing selection/focus.
`protected void`
`addSelectionListener()`
Adds an EditPartListener to the host to observe selection/focus changes.
`void`
`deactivate()`
Extends deactivate to unhook the seleciton listener and to remove the visual changes for representing selection/focus.
`EditPart`
`getTargetEditPart(Request request)`
Returns `null` by default.
`protected void`
`hideFocus()`
Override to hide focus
`protected abstract void`
`hideSelection()`
Override to hide selection
`protected void`
`removeSelectionListener()`
Removes the EditPartListener used to observe selection
`protected void`
`setFocus(boolean value)`
Sets the internal focus value.
`protected void`
`setSelectedState(int type)`
Sets the internal selection value.
`protected void`
`showFocus()`
Override to show focus.
`protected void`
`showPrimarySelection()`
Calls `showSelection()` by default.
`protected abstract void`
`showSelection()`
Override to show selection

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

`addFeedback, getFeedbackLayer, getHostFigure, getLayer, removeFeedback`

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

`debugFeedback, eraseSourceFeedback, eraseTargetFeedback, getCommand, getHost, setHost, showSourceFeedback, showTargetFeedback, toString, understandsRequest`

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

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

## Constructor Details

### SelectionEditPolicy

public SelectionEditPolicy()

## Method Details

### activate

public void activate()
Extends activate to hook the appropriate listener and to initialize the visual changes for representing selection/focus.

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

### addSelectionListener

protected void addSelectionListener()
Adds an EditPartListener to the host to observe selection/focus changes.

### deactivate

public void deactivate()
Extends deactivate to unhook the seleciton listener and to remove the visual changes for representing selection/focus.

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

### getTargetEditPart

public EditPart getTargetEditPart(Request request)
Description copied from class: `AbstractEditPolicy`
Returns `null` by default. `null` indicates that this policy is unable to determine the target for the specified `Request`.

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

### hideFocus

protected void hideFocus()
Override to hide focus

See Also:
  - `showFocus()`

### hideSelection

protected abstract void hideSelection()
Override to hide selection

### removeSelectionListener

protected void removeSelectionListener()
Removes the EditPartListener used to observe selection

### setFocus

protected void setFocus(boolean value)
Sets the internal focus value. This method is called automatically by the listener. If the focus value is changed, either `showFocus()` or `hideFocus()` will be called.

Parameters:
  `value` - `true` if the EditPolicy should show focus

### setSelectedState

protected void setSelectedState(int type)
Sets the internal selection value. This method is called automatically by the listener. If the selection value is changed, the appropriate method is called to show the specified selection type.

Parameters:
  `type` - the type of selection the EditPolicy should display

### showFocus

protected void showFocus()
Override to show focus.

See Also:
  - `hideFocus()`

### showPrimarySelection

protected void showPrimarySelection()
Calls `showSelection()` by default. Override to distinguish between primary and normal selection.

### showSelection

protected abstract void showSelection()
Override to show selection