Class AbstractBehavior

java.lang.Object
org.eclipse.gef.mvc.fx.behaviors.AbstractBehavior
All Implemented Interfaces:
IActivatable, IAdaptable.Bound<IVisualPart<? extends Node>>, IBehavior
Direct Known Subclasses:
ConnectionClickableAreaBehavior, ContentBehavior, FocusBehavior, GridBehavior, HoverBehavior, HoverIntentBehavior, RevealPrimarySelectionBehavior, SelectionBehavior, SnappingBehavior

public abstract class AbstractBehavior extends 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 Details

  • Constructor Details

    • AbstractBehavior

      public AbstractBehavior()
  • Method Details

    • activate

      public final void activate()
      Specified by:
      activate in interface IActivatable
    • activeProperty

      public final ReadOnlyBooleanProperty activeProperty()
      Specified by:
      activeProperty in interface IActivatable
      See Also:
    • adaptableProperty

      public ReadOnlyObjectProperty<IVisualPart<? extends Node>> adaptableProperty()
      Specified by:
      adaptableProperty in interface IAdaptable.Bound<IVisualPart<? extends Node>>
      See Also:
    • addAnchoreds

      protected void addAnchoreds(Collection<? extends IVisualPart<? extends Node>> targets, List<? extends IVisualPart<? extends 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(Collection<? extends IVisualPart<? extends Node>> targets, List<? extends IVisualPart<? extends 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 Node> target)
      Adds feedback for the given target part.
      Parameters:
      target - The target part for which to add feedback.
    • addFeedback

      protected void addFeedback(List<? extends IVisualPart<? extends 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 Node> target)
      Adds handles for the given target part.
      Parameters:
      target - The target part for which to add feedback.
    • addHandles

      protected void addHandles(List<? extends IVisualPart<? extends 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 Node> getAdaptable()
      Gets the value of the property adaptable.
      Specified by:
      getAdaptable in interface IAdaptable.Bound<IVisualPart<? extends Node>>
      Property description:
    • getFeedback

      protected List<IFeedbackPart<? extends Node>> getFeedback(Collection<? extends IVisualPart<? extends Node>> targets)
      Returns a list that contains all IHandleParts 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 List<IFeedbackPart<? extends Node>> getFeedback(IVisualPart<? extends Node> target)
      Returns a list that contains all IHandleParts 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, 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 Map<Set<IVisualPart<? extends Node>>,List<IFeedbackPart<? extends 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, 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 List<IHandlePart<? extends Node>> getHandles(Collection<? extends IVisualPart<? extends Node>> targets)
      Returns a list that contains all IHandleParts 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 List<IHandlePart<? extends Node>> getHandles(IVisualPart<? extends Node> target)
      Returns a list that contains all IHandleParts 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 Map<Set<IVisualPart<? extends Node>>,List<IHandlePart<? extends 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 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(Collection<? extends IVisualPart<? extends 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 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(Collection<? extends IVisualPart<? extends 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 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
      Property description:
    • removeAnchoreds

      protected void removeAnchoreds(Collection<? extends IVisualPart<? extends Node>> targets, List<? extends IVisualPart<? extends 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(Collection<? extends IVisualPart<? extends Node>> targets)
      Removes feedback for the given targets.
      Parameters:
      targets - The list of target parts.
    • removeFeedback

      protected void removeFeedback(IVisualPart<? extends Node> target)
      Removes feedback for the given target.
      Parameters:
      target - The target for which to remove feedback.
    • removeFeedback

      protected void removeFeedback(Set<? extends IVisualPart<? extends Node>> targetSet)
      Removes feedback for the given target parts.
      Parameters:
      targetSet - The target parts.
    • removeHandles

      protected void removeHandles(Collection<? extends IVisualPart<? extends Node>> targets)
      Removes handles for the given target parts.
      Parameters:
      targets - The target parts.
    • removeHandles

      protected void removeHandles(IVisualPart<? extends Node> target)
      Removes handles for the given target.
      Parameters:
      target - The target for which to remove handles.
    • removeHandles

      protected void removeHandles(Set<? extends IVisualPart<? extends Node>> targetSet)
      Removes handles for the given target parts.
      Parameters:
      targetSet - The target parts.
    • setAdaptable

      public void setAdaptable(IVisualPart<? extends Node> adaptable)
      Sets the value of the property adaptable.
      Specified by:
      setAdaptable in interface IAdaptable.Bound<IVisualPart<? extends Node>>
      Property description:
    • updateHandles

      public IHandlePart<? extends Node> updateHandles(IVisualPart<? extends Node> target, Comparator<IHandlePart<? extends Node>> interactedWithComparator, IHandlePart<? extends 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 Node> updateHandles(List<? extends IVisualPart<? extends Node>> targets, Comparator<IHandlePart<? extends Node>> interactedWithComparator, IHandlePart<? extends 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.