org.eclipse.gef.mvc.fx.behaviors

## Class AbstractBehavior

- java.lang.Object
- - org.eclipse.gef.mvc.fx.behaviors.AbstractBehavior

All Implemented Interfaces:
  IActivatable, IAdaptable.Bound<IVisualPart<? extends javafx.scene.Node>>, IBehavior

Direct Known Subclasses:
  ConnectionClickableAreaBehavior, ContentBehavior, FocusBehavior, GridBehavior, HoverBehavior, HoverIntentBehavior, RevealPrimarySelectionBehavior, SelectionBehavior, SnappingBehavior

    public abstract class AbstractBehavior
    extends java.lang.Object
    implements IBehavior

The `AbstractBehavior` can be used as a base class for `IBehavior` implementations. It implements activation and deactivation of its adapters, and provides methods for the addition and removal of feedback and handles, as well as a method that can be used to update the handles for a given target part.

### Property Summary

All Methods Instance Methods Concrete Methods
`javafx.beans.property.ReadOnlyBooleanProperty` `active`
`javafx.beans.property.ReadOnlyObjectProperty<IVisualPart<? extends javafx.scene.Node>>` `adaptable`

### Nested Class Summary

### Nested classes/interfaces inherited from interface org.eclipse.gef.common.adapt.IAdaptable.Bound

`IAdaptable.Bound.Impl<T extends IAdaptable>`

### Field Summary

### Fields inherited from interface org.eclipse.gef.common.activate.IActivatable

`ACTIVE_PROPERTY`

### Constructor Summary

Constructors
Constructor and Description
`AbstractBehavior()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `activate()`
`javafx.beans.property.ReadOnlyBooleanProperty` `activeProperty()`
`javafx.beans.property.ReadOnlyObjectProperty<IVisualPart<? extends javafx.scene.Node>>` `adaptableProperty()`
`protected void` `addAnchoreds(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets, java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> anchoreds)` Adds the given anchoreds as children to the root part and anchors them to the given target parts.
`protected void` `addAnchoreds(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets, java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> anchoreds, int insertionIndex)` Adds the given anchoreds as children to the root part and anchors them to the given target parts.
`protected void` `addFeedback(IVisualPart<? extends javafx.scene.Node> target)` Adds feedback for the given target part.
`protected void` `addFeedback(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Adds feedback for the given target parts.
`protected void` `addHandles(IVisualPart<? extends javafx.scene.Node> target)` Adds handles for the given target part.
`protected void` `addHandles(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Adds handles for the given target parts.
`protected void` `clearFeedback()` Removes all feedback.
`protected void` `clearHandles()` Removes all handles.
`void` `deactivate()`
`protected void` `doActivate()` Post `activate()` hook that may be overwritten to e.g. register listeners.
`protected void` `doDeactivate()` Pre `deactivate()` hook that may be overwritten to e.g. unregister listeners.
`IVisualPart<? extends javafx.scene.Node>` `getAdaptable()` Gets the value of the property adaptable.
`protected java.util.List<IFeedbackPart<? extends javafx.scene.Node>>` `getFeedback(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Returns a list that contains all `IHandlePart`s that were generated for the given target parts by this `IBehavior`.
`protected java.util.List<IFeedbackPart<? extends javafx.scene.Node>>` `getFeedback(IVisualPart<? extends javafx.scene.Node> target)` Returns a list that contains all `IHandlePart`s that were generated for the given target part by this `IBehavior`.
`protected IFeedbackPartFactory` `getFeedbackPartFactory(IViewer viewer)` Returns the `IFeedbackPartFactory` that should be used for feedback creation.
`protected IFeedbackPartFactory` `getFeedbackPartFactory(IViewer viewer, java.lang.String role)` Returns the `IFeedbackPartFactory` that is registered as an adapter at the given `IViewer` under the given role.
`protected java.util.Map<java.util.Set<IVisualPart<? extends javafx.scene.Node>>,java.util.List<IFeedbackPart<? extends javafx.scene.Node>>>` `getFeedbackPerTargetSet()` Returns the map that stores the feedback parts per target part set.
`protected IHandlePartFactory` `getHandlePartFactory(IViewer viewer)` Returns the `IHandlePartFactory` that should be used for handle creation.
`protected IHandlePartFactory` `getHandlePartFactory(IViewer viewer, java.lang.String role)` Returns the `IHandlePartFactory` that is registered as an adapter at the given `IViewer` under the given role.
`protected java.util.List<IHandlePart<? extends javafx.scene.Node>>` `getHandles(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Returns a list that contains all `IHandlePart`s that were generated for the given target parts by this `IBehavior`.
`protected java.util.List<IHandlePart<? extends javafx.scene.Node>>` `getHandles(IVisualPart<? extends javafx.scene.Node> target)` Returns a list that contains all `IHandlePart`s that were generated for the given target part by this `IBehavior`.
`protected java.util.Map<java.util.Set<IVisualPart<? extends javafx.scene.Node>>,java.util.List<IHandlePart<? extends javafx.scene.Node>>>` `getHandlesPerTargetSet()` Returns the map that stores the handle parts per target part set.
`IVisualPart<? extends javafx.scene.Node>` `getHost()` Returns the host `IVisualPart` of this `IBehavior`, i.e. the part where this behavior is registered as an adapter.
`protected boolean` `hasFeedback(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Returns `true` if feedback was added for the given set of target parts, even if no feedback parts were generated for the given set of target parts.
`protected boolean` `hasFeedback(IVisualPart<? extends javafx.scene.Node> target)` Returns `true` if feedback was added for the given target part, even if no feedback parts were generated for the given target part.
`protected boolean` `hasHandles(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Returns `true` if handles were added for the given set of target parts, even if no handle parts were generated for the given set of target parts.
`protected boolean` `hasHandles(IVisualPart<? extends javafx.scene.Node> target)` Returns `true` if handles were added for the given target part, even if no handle parts were generated for the given target part.
`boolean` `isActive()` Gets the value of the property active.
`protected void` `removeAnchoreds(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets, java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> anchoreds)` Removes the given anchoreds as children from the root part and as anchoreds from the given target parts.
`protected void` `removeFeedback(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Removes feedback for the given targets.
`protected void` `removeFeedback(IVisualPart<? extends javafx.scene.Node> target)` Removes feedback for the given target.
`protected void` `removeFeedback(java.util.Set<? extends IVisualPart<? extends javafx.scene.Node>> targetSet)` Removes feedback for the given target parts.
`protected void` `removeHandles(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)` Removes handles for the given target parts.
`protected void` `removeHandles(IVisualPart<? extends javafx.scene.Node> target)` Removes handles for the given target.
`protected void` `removeHandles(java.util.Set<? extends IVisualPart<? extends javafx.scene.Node>> targetSet)` Removes handles for the given target parts.
`void` `setAdaptable(IVisualPart<? extends javafx.scene.Node> adaptable)` Sets the value of the property adaptable.
`IHandlePart<? extends javafx.scene.Node>` `updateHandles(IVisualPart<? extends javafx.scene.Node> target, java.util.Comparator<IHandlePart<? extends javafx.scene.Node>> interactedWithComparator, IHandlePart<? extends javafx.scene.Node> interactedWith)` Updates the handles of the given target part.
`IHandlePart<? extends javafx.scene.Node>` `updateHandles(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> targets, java.util.Comparator<IHandlePart<? extends javafx.scene.Node>> interactedWithComparator, IHandlePart<? extends javafx.scene.Node> interactedWith)` Updates the handles of the given targets.

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

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

### Property Detail

#### active

    public final javafx.beans.property.ReadOnlyBooleanProperty activeProperty

Specified by:
  `activeProperty` in interface `IActivatable`
See Also:
  `isActive()`

#### adaptable

    public javafx.beans.property.ReadOnlyObjectProperty<IVisualPart<? extends javafx.scene.Node>> adaptableProperty

Specified by:
  `adaptableProperty` in interface `IAdaptable.Bound<IVisualPart<? extends javafx.scene.Node>>`
See Also:
  `getAdaptable()`, `setAdaptable(IVisualPart)`

### Constructor Detail

#### AbstractBehavior

    public AbstractBehavior()

### Method Detail

#### activate

    public final void activate()

Specified by:
  `activate` in interface `IActivatable`

#### activeProperty

    public final javafx.beans.property.ReadOnlyBooleanProperty activeProperty()

Specified by:
  `activeProperty` in interface `IActivatable`
See Also:
  `isActive()`

#### adaptableProperty

    public javafx.beans.property.ReadOnlyObjectProperty<IVisualPart<? extends javafx.scene.Node>> adaptableProperty()

Specified by:
  `adaptableProperty` in interface `IAdaptable.Bound<IVisualPart<? extends javafx.scene.Node>>`
See Also:
  `getAdaptable()`, `setAdaptable(IVisualPart)`

#### addAnchoreds

    protected void addAnchoreds(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets,
                                java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> anchoreds)

Adds the given anchoreds as children to the root part and anchors them to the given target parts.

Parameters:
  `targets` - The anchorages for the anchoreds.
  `anchoreds` - The anchored (feedback or handle) parts.

#### addAnchoreds

    protected void addAnchoreds(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets,
                                java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> anchoreds,
                                int insertionIndex)

Adds the given anchoreds as children to the root part and anchors them to the given target parts. The given index determines the position where the anchoreds are inserted into the children list of the root part. The index can be used to control the z-order.

Parameters:
  `targets` - The target parts.
  `anchoreds` - The anchored (feedback or handle) parts.
  `insertionIndex` - The insertion index (controlling the z-order).

#### addFeedback

    protected void addFeedback(IVisualPart<? extends javafx.scene.Node> target)

Adds feedback for the given target part.

Parameters:
  `target` - The target part for which to add feedback.

#### addFeedback

    protected void addFeedback(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Adds feedback for the given target parts.

Parameters:
  `targets` - The target parts for which to add feedback.

#### addHandles

    protected void addHandles(IVisualPart<? extends javafx.scene.Node> target)

Adds handles for the given target part.

Parameters:
  `target` - The target part for which to add feedback.

#### addHandles

    protected void addHandles(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Adds handles for the given target parts.

Parameters:
  `targets` - The target parts for which to add handles.

#### clearFeedback

    protected void clearFeedback()

Removes all feedback.

#### clearHandles

    protected void clearHandles()

Removes all handles.

#### deactivate

    public final void deactivate()

Specified by:
  `deactivate` in interface `IActivatable`

#### doActivate

    protected void doActivate()

Post `activate()` hook that may be overwritten to e.g. register listeners.

#### doDeactivate

    protected void doDeactivate()

Pre `deactivate()` hook that may be overwritten to e.g. unregister listeners.

#### getAdaptable

    public IVisualPart<? extends javafx.scene.Node> getAdaptable()

Gets the value of the property adaptable.

Specified by:
  `getAdaptable` in interface `IAdaptable.Bound<IVisualPart<? extends javafx.scene.Node>>`

#### getFeedback

    protected java.util.List<IFeedbackPart<? extends javafx.scene.Node>> getFeedback(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Returns a list that contains all `IHandlePart`s that were generated for the given target parts by this `IBehavior`. If no handle parts were generated for the given target parts, an empty list is returned.

Parameters:
  `targets` - A collection of target parts.
Returns:
  A list that contains all handle parts that were generated for the given target parts.

#### getFeedback

    protected java.util.List<IFeedbackPart<? extends javafx.scene.Node>> getFeedback(IVisualPart<? extends javafx.scene.Node> target)

Returns a list that contains all `IHandlePart`s that were generated for the given target part by this `IBehavior`. If no handle parts were generated for the given target part, an empty list is returned.

Parameters:
  `target` - The target part.
Returns:
  A list that contains all handle parts that were generated for the given target part.

#### getFeedbackPartFactory

    protected IFeedbackPartFactory getFeedbackPartFactory(IViewer viewer)

Returns the `IFeedbackPartFactory` that should be used for feedback creation.

Parameters:
  `viewer` - The `IViewer` for which to determine the `IFeedbackPartFactory` for this `IBehavior`.
Returns:
  The `IFeedbackPartFactory` that should be used for feedback creation.

#### getFeedbackPartFactory

    protected IFeedbackPartFactory getFeedbackPartFactory(IViewer viewer,
                                                          java.lang.String role)

Returns the `IFeedbackPartFactory` that is registered as an adapter at the given `IViewer` under the given role.

Parameters:
  `viewer` - The `IViewer` where the `IFeedbackPartFactory` is registered.
  `role` - The role under which the `IFeedbackPartFactory` is registered.
Returns:
  The `IFeedbackPartFactory` that is registered as an adapter at the given `IViewer` under the given role.

#### getFeedbackPerTargetSet

    protected java.util.Map<java.util.Set<IVisualPart<? extends javafx.scene.Node>>,java.util.List<IFeedbackPart<? extends javafx.scene.Node>>> getFeedbackPerTargetSet()

Returns the map that stores the feedback parts per target part set.

Returns:
  The map that stores the feedback parts per target part set.

#### getHandlePartFactory

    protected IHandlePartFactory getHandlePartFactory(IViewer viewer)

Returns the `IHandlePartFactory` that should be used for handle creation.

Parameters:
  `viewer` - The `IViewer` for which to determine the `IHandlePartFactory` for this `IBehavior`.
Returns:
  The `IHandlePartFactory` that should be used for feedback creation.

#### getHandlePartFactory

    protected IHandlePartFactory getHandlePartFactory(IViewer viewer,
                                                      java.lang.String role)

Returns the `IHandlePartFactory` that is registered as an adapter at the given `IViewer` under the given role.

Parameters:
  `viewer` - The `IViewer` where the `IHandlePartFactory` is registered.
  `role` - The role under which the `IHandlePartFactory` is registered.
Returns:
  The `IHandlePartFactory` that is registered as an adapter at the given `IViewer` under the given role.

#### getHandles

    protected java.util.List<IHandlePart<? extends javafx.scene.Node>> getHandles(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Returns a list that contains all `IHandlePart`s that were generated for the given target parts by this `IBehavior`. If no handle parts were generated for the given target parts, an empty list is returned.

Parameters:
  `targets` - A collection of target parts.
Returns:
  A list that contains all handle parts that were generated for the given target parts.

#### getHandles

    protected java.util.List<IHandlePart<? extends javafx.scene.Node>> getHandles(IVisualPart<? extends javafx.scene.Node> target)

Returns a list that contains all `IHandlePart`s that were generated for the given target part by this `IBehavior`. If no handle parts were generated for the given target part, an empty list is returned.

Parameters:
  `target` - The target part.
Returns:
  A list that contains all handle parts that were generated for the given target part.

#### getHandlesPerTargetSet

    protected java.util.Map<java.util.Set<IVisualPart<? extends javafx.scene.Node>>,java.util.List<IHandlePart<? extends javafx.scene.Node>>> getHandlesPerTargetSet()

Returns the map that stores the handle parts per target part set.

Returns:
  The map that stores the handle parts per target part set.

#### getHost

    public IVisualPart<? extends javafx.scene.Node> getHost()

Description copied from interface: `IBehavior`
Returns the host `IVisualPart` of this `IBehavior`, i.e. the part where this behavior is registered as an adapter.

Specified by:
  `getHost` in interface `IBehavior`
Returns:
  The host `IVisualPart` of this `IBehavior`.

#### hasFeedback

    protected boolean hasFeedback(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Returns `true` if feedback was added for the given set of target parts, even if no feedback parts were generated for the given set of target parts. Otherwise returns `false`.

Parameters:
  `targets` - The set of target parts.
Returns:
  `true` if feedback was added for the given set of target parts, even if no feedback parts were generated, otherwise `false`.

#### hasFeedback

    protected boolean hasFeedback(IVisualPart<? extends javafx.scene.Node> target)

Returns `true` if feedback was added for the given target part, even if no feedback parts were generated for the given target part. Otherwise returns `false`.

Parameters:
  `target` - The target part.
Returns:
  `true` if feedback was added for the given target part, even if no feedback parts were generated, otherwise `false`.

#### hasHandles

    protected boolean hasHandles(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Returns `true` if handles were added for the given set of target parts, even if no handle parts were generated for the given set of target parts. Otherwise returns `false`.

Parameters:
  `targets` - The set of target parts.
Returns:
  `true` if handles were added for the given set of target parts, even if no handle parts were generated, otherwise `false`.

#### hasHandles

    protected boolean hasHandles(IVisualPart<? extends javafx.scene.Node> target)

Returns `true` if handles were added for the given target part, even if no handle parts were generated for the given target part. Otherwise returns `false`.

Parameters:
  `target` - The target part.
Returns:
  `true` if handles were added for the given target part, even if no handles parts were generated, otherwise `false`.

#### isActive

    public final boolean isActive()

Gets the value of the property active.

Specified by:
  `isActive` in interface `IActivatable`

#### removeAnchoreds

    protected void removeAnchoreds(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets,
                                   java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> anchoreds)

Removes the given anchoreds as children from the root part and as anchoreds from the given target parts.

Parameters:
  `targets` - The anchorages of the anchoreds.
  `anchoreds` - The anchoreds (feedback or handles) that are to be removed.

#### removeFeedback

    protected void removeFeedback(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Removes feedback for the given targets.

Parameters:
  `targets` - The list of target parts.

#### removeFeedback

    protected void removeFeedback(IVisualPart<? extends javafx.scene.Node> target)

Removes feedback for the given target.

Parameters:
  `target` - The target for which to remove feedback.

#### removeFeedback

    protected void removeFeedback(java.util.Set<? extends IVisualPart<? extends javafx.scene.Node>> targetSet)

Removes feedback for the given target parts.

Parameters:
  `targetSet` - The target parts.

#### removeHandles

    protected void removeHandles(java.util.Collection<? extends IVisualPart<? extends javafx.scene.Node>> targets)

Removes handles for the given target parts.

Parameters:
  `targets` - The target parts.

#### removeHandles

    protected void removeHandles(IVisualPart<? extends javafx.scene.Node> target)

Removes handles for the given target.

Parameters:
  `target` - The target for which to remove handles.

#### removeHandles

    protected void removeHandles(java.util.Set<? extends IVisualPart<? extends javafx.scene.Node>> targetSet)

Removes handles for the given target parts.

Parameters:
  `targetSet` - The target parts.

#### setAdaptable

    public void setAdaptable(IVisualPart<? extends javafx.scene.Node> adaptable)

Sets the value of the property adaptable.

Specified by:
  `setAdaptable` in interface `IAdaptable.Bound<IVisualPart<? extends javafx.scene.Node>>`

#### updateHandles

    public IHandlePart<? extends javafx.scene.Node> updateHandles(IVisualPart<? extends javafx.scene.Node> target,
                                                                  java.util.Comparator<IHandlePart<? extends javafx.scene.Node>> interactedWithComparator,
                                                                  IHandlePart<? extends javafx.scene.Node> interactedWith)

Updates the handles of the given target part. Returns a new `IHandlePart` that would be replacing the given interactedWith handle part if that part was not preserved (which it is). The user can then apply the information of the replacement part to the preserved interactedWith part.

Parameters:
  `target` - The target part for the handles.
  `interactedWithComparator` - A `Comparator` that can be used to identify a new handle at the same position as the handle that is currently interacted with. Can be `null` if no handle should be preserved.
  `interactedWith` - The `IHandlePart` that is interacted with and therefore, should be preserved, or `null`.
Returns:
  The new `IHandlePart` for the position of the handle part that is interacted with so that its information can be applied to the preserved handle part.

#### updateHandles

    public IHandlePart<? extends javafx.scene.Node> updateHandles(java.util.List<? extends IVisualPart<? extends javafx.scene.Node>> targets,
                                                                  java.util.Comparator<IHandlePart<? extends javafx.scene.Node>> interactedWithComparator,
                                                                  IHandlePart<? extends javafx.scene.Node> interactedWith)

Updates the handles of the given targets. Returns a new `IHandlePart` that would be replacing the given interactedWith handle part if that part was not preserved (which it is). The user can then apply the information of the replacement part to the preserved interactedWith part.

Parameters:
  `targets` - The target parts for the handles.
  `interactedWithComparator` - A `Comparator` that can be used to identify a new handle at the same position as the handle that is currently interacted with. Can be `null` if no handle should be preserved.
  `interactedWith` - The `IHandlePart` that is interacted with and therefore, should be preserved, or `null`.
Returns:
  The new `IHandlePart` for the position of the handle part that is interacted with so that its information can be applied to the preserved handle part.