Class AbstractLayoutAlgorithm.Zest1

java.lang.Object
org.eclipse.zest.layouts.algorithms.AbstractLayoutAlgorithm.Zest1
All Implemented Interfaces:
LayoutAlgorithm, LayoutAlgorithm.Zest1, Stoppable
Direct Known Subclasses:
CompositeLayoutAlgorithm.Zest1, ContinuousLayoutAlgorithm, DirectedGraphLayoutAlgorithm.Zest1, GridLayoutAlgorithm.Zest1, HorizontalShift, TreeLayoutAlgorithm.Zest1
Enclosing class:
AbstractLayoutAlgorithm

@Deprecated(since="2.0", forRemoval=true) public abstract static class AbstractLayoutAlgorithm.Zest1 extends Object implements LayoutAlgorithm.Zest1, Stoppable
Deprecated, for removal: This API element is subject to removal in a future version.
No longer used in Zest 2.x. This class will be removed in a future release.
Since:
2.0
@noextend
This class is not intended to be subclassed by clients.
@noreference
This class is not intended to be referenced by clients.
  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.eclipse.zest.layouts.LayoutAlgorithm

    LayoutAlgorithm.Zest1
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Comparator
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected Filter
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    static final int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Zest1(int styles)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Initializes the abstract layout algorithm.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Queues up the given entity (if it isn't in the list) to be added to the algorithm.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    A layout algorithm could take an uncomfortable amout of time to complete.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Queues up the given relationshp (if it isn't in the list) to be added to the algorithm.
    void
    applyLayout(boolean clean)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Makes this algorithm perform layout computation and apply it to its context.
    void
    applyLayout(LayoutEntity[] entitiesToLayout, LayoutRelationship[] relationshipsToConsider, double x, double y, double width, double height, boolean asynchronous, boolean continuous)
    Deprecated, for removal: This API element is subject to removal in a future version.
    This actually applies the layout
    protected abstract void
    applyLayoutInternal(InternalNode[] entitiesToLayout, InternalRelationship[] relationshipsToConsider, double boundsX, double boundsY, double boundsWidth, double boundsHeight)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Apply the layout to the given entities.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Find an appropriate size for the given nodes, then fit them into the given bounds.
    protected void
    defaultFitWithinBounds(InternalNode[] entitiesToLayout, InternalRelationship[] relationships, DisplayIndependentRectangle realBounds)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Find an appropriate size for the given nodes, then fit them into the given bounds.
    protected void
    fireProgressEnded(int totalNumberOfSteps)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected void
    fireProgressEvent(int currentStep, int totalNumberOfSteps)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Fires an event to notify all of the registered ProgressListeners that another step has been completed in the algorithm.
    protected void
    fireProgressStarted(int totalNumberOfSteps)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected void
    fireProgressUpdated(int currentStep, int totalNumberOfSteps)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected abstract int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Gets the current layout step
    double
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the width to height ratio this layout will use to set the size of the entities.
    getLayoutBounds(InternalNode[] entitiesToLayout, boolean includeNodeSize)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Find the bounds in which the nodes are located.
    getLocalLocation(InternalNode[] entitiesToLayout, double x, double y, DisplayIndependentRectangle realBounds)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Gets the location in the layout bounds for this node
    protected int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Gets the current layout style
    protected abstract int
    Deprecated, for removal: This API element is subject to removal in a future version.
    Gets the total number of steps in this layout
    boolean
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns true if the layout algorithm is running
    protected abstract boolean
    isValidConfiguration(boolean asynchronous, boolean continuous)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Determines if the configuration is valid for this layout
    protected abstract void
    postLayoutAlgorithm(InternalNode[] entitiesToLayout, InternalRelationship[] relationshipsToConsider)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Code called after the layout algorithm ends
    protected abstract void
    preLayoutAlgorithm(InternalNode[] entitiesToLayout, InternalRelationship[] relationshipsToConsider, double x, double y, double width, double height)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Code called before the layout algorithm starts
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Queues up the given entity to be removed from the algorithm next time it runs.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Removes the given progress listener, preventing it from receiving any more updates.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Queues up the given relationship to be removed from the algorithm next time it runs.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    void
    removeRelationships(List<? extends LayoutRelationship> relationships)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Queues up all the relationships in the list to be removed.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Determines the order in which the objects should be displayed.
    void
    setEntityAspectRatio(double ratio)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Set the width to height ratio you want the entities to use
    void
    setFilter(Filter filter)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Filters the entities and relationships to apply the layout on
    abstract void
    setLayoutArea(double x, double y, double width, double height)
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Sets the layout context for this algorithm.
    void
    setStyle(int style)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Sets the current layout style.
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Stops the current layout from running.
    protected void
    updateBendPoints(InternalRelationship[] relationshipsToConsider)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Update external bend points from the internal bendpoints list.
    protected InternalNode[]
    Deprecated, for removal: This API element is subject to removal in a future version.
    Updates the given array of entities checking if any need to be removed or added.
    protected void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Updates the layout locations so the external nodes know about the new locations
    Deprecated, for removal: This API element is subject to removal in a future version.
    Updates the given array of relationships checking if any need to be removed or added.
    static boolean
    verifyInput(LayoutEntity[] entitiesToLayout, LayoutRelationship[] relationshipsToConsider)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Verifies the endpoints of the relationships are entities in the entitiesToLayout list.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • MIN_ENTITY_SIZE

      public static final int MIN_ENTITY_SIZE
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • comparator

      protected Comparator comparator
      Deprecated, for removal: This API element is subject to removal in a future version.
    • filter

      protected Filter filter
      Deprecated, for removal: This API element is subject to removal in a future version.
    • internalContinuous

      protected boolean internalContinuous
      Deprecated, for removal: This API element is subject to removal in a future version.
    • internalAsynchronous

      protected boolean internalAsynchronous
      Deprecated, for removal: This API element is subject to removal in a future version.
    • layoutStopped

      protected boolean layoutStopped
      Deprecated, for removal: This API element is subject to removal in a future version.
    • layout_styles

      protected int layout_styles
      Deprecated, for removal: This API element is subject to removal in a future version.
    • resizeEntitiesAfterLayout

      protected boolean resizeEntitiesAfterLayout
      Deprecated, for removal: This API element is subject to removal in a future version.
  • Constructor Details

    • Zest1

      public Zest1(int styles)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Initializes the abstract layout algorithm.
      See Also:
  • Method Details

    • removeRelationships

      public void removeRelationships(Collection<? extends LayoutRelationship> collection)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • addEntity

      public void addEntity(LayoutEntity entity)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Queues up the given entity (if it isn't in the list) to be added to the algorithm.
      Specified by:
      addEntity in interface LayoutAlgorithm.Zest1
      Parameters:
      entity -
    • addRelationship

      public void addRelationship(LayoutRelationship relationship)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Queues up the given relationshp (if it isn't in the list) to be added to the algorithm.
      Specified by:
      addRelationship in interface LayoutAlgorithm.Zest1
      Parameters:
      relationship -
    • removeEntity

      public void removeEntity(LayoutEntity entity)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Queues up the given entity to be removed from the algorithm next time it runs.
      Specified by:
      removeEntity in interface LayoutAlgorithm.Zest1
      Parameters:
      entity - The entity to remove
    • removeRelationship

      public void removeRelationship(LayoutRelationship relationship)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Queues up the given relationship to be removed from the algorithm next time it runs.
      Specified by:
      removeRelationship in interface LayoutAlgorithm.Zest1
      Parameters:
      relationship - The relationship to remove.
    • removeRelationships

      public void removeRelationships(List<? extends LayoutRelationship> relationships)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Queues up all the relationships in the list to be removed.
      Specified by:
      removeRelationships in interface LayoutAlgorithm.Zest1
      Parameters:
      relationships -
    • setStyle

      public void setStyle(int style)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Sets the current layout style. This overwrites all other layout styles. Use getStyle to get the current style.
      Specified by:
      setStyle in interface LayoutAlgorithm.Zest1
      Parameters:
      style -
    • getStyle

      public int getStyle()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Gets the current layout style
      Specified by:
      getStyle in interface LayoutAlgorithm.Zest1
      Returns:
      the layout styles for this layout
    • setLayoutArea

      public abstract void setLayoutArea(double x, double y, double width, double height)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • isValidConfiguration

      protected abstract boolean isValidConfiguration(boolean asynchronous, boolean continuous)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines if the configuration is valid for this layout
      Parameters:
      asynchronous -
      continuous -
    • applyLayoutInternal

      protected abstract void applyLayoutInternal(InternalNode[] entitiesToLayout, InternalRelationship[] relationshipsToConsider, double boundsX, double boundsY, double boundsWidth, double boundsHeight)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Apply the layout to the given entities. The entities will be moved and resized based on the algorithm.
      Parameters:
      entitiesToLayout - Apply the algorithm to these entities
      relationshipsToConsider - Only consider these relationships when applying the algorithm.
      boundsX - The left side of the bounds in which the layout can place the entities.
      boundsY - The top side of the bounds in which the layout can place the entities.
      boundsWidth - The width of the bounds in which the layout can place the entities.
      boundsHeight - The height of the bounds in which the layout can place the entities.
    • updateEntities

      protected InternalNode[] updateEntities(InternalNode[] entities)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Updates the given array of entities checking if any need to be removed or added.
      Parameters:
      entities - the current entities
      Returns:
      the updated entities array
    • updateRelationships

      protected InternalRelationship[] updateRelationships(InternalRelationship[] relationships)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Updates the given array of relationships checking if any need to be removed or added. Also updates the original array of relationships.
      Parameters:
      relationships - the current relationships
      Returns:
      the update relationships array
    • isRunning

      public boolean isRunning()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns true if the layout algorithm is running
      Specified by:
      isRunning in interface LayoutAlgorithm.Zest1
      Returns:
      boolean if the layout algorithm is running
    • stop

      public void stop()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Stops the current layout from running. All layout algorithms should constantly check isLayoutRunning
      Specified by:
      stop in interface LayoutAlgorithm.Zest1
      Specified by:
      stop in interface Stoppable
    • preLayoutAlgorithm

      protected abstract void preLayoutAlgorithm(InternalNode[] entitiesToLayout, InternalRelationship[] relationshipsToConsider, double x, double y, double width, double height)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Code called before the layout algorithm starts
    • postLayoutAlgorithm

      protected abstract void postLayoutAlgorithm(InternalNode[] entitiesToLayout, InternalRelationship[] relationshipsToConsider)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Code called after the layout algorithm ends
    • getTotalNumberOfLayoutSteps

      protected abstract int getTotalNumberOfLayoutSteps()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Gets the total number of steps in this layout
    • getCurrentLayoutStep

      protected abstract int getCurrentLayoutStep()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Gets the current layout step
    • applyLayout

      public void applyLayout(LayoutEntity[] entitiesToLayout, LayoutRelationship[] relationshipsToConsider, double x, double y, double width, double height, boolean asynchronous, boolean continuous) throws InvalidLayoutConfiguration
      Deprecated, for removal: This API element is subject to removal in a future version.
      This actually applies the layout
      Specified by:
      applyLayout in interface LayoutAlgorithm.Zest1
      Parameters:
      entitiesToLayout - Apply the algorithm to these entities
      relationshipsToConsider - Only consider these relationships when applying the algorithm.
      x - The left side of the bounds in which the layout can place the entities.
      y - The top side of the bounds in which the layout can place the entities.
      width - The width of the bounds in which the layout can place the entities.
      height - The height of the bounds in which the layout can place the entities.
      asynchronous - Should the algorithm run Asynchronously
      Throws:
      InvalidLayoutConfiguration
    • updateBendPoints

      protected void updateBendPoints(InternalRelationship[] relationshipsToConsider)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Update external bend points from the internal bendpoints list. Save the source and destination points for later use in scaling and translating
      Parameters:
      relationshipsToConsider -
    • setFilter

      public void setFilter(Filter filter)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Filters the entities and relationships to apply the layout on
      Specified by:
      setFilter in interface LayoutAlgorithm.Zest1
    • setComparator

      public void setComparator(Comparator comparator)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Determines the order in which the objects should be displayed. Note: Some algorithms force a specific order.
      Specified by:
      setComparator in interface LayoutAlgorithm.Zest1
    • verifyInput

      public static boolean verifyInput(LayoutEntity[] entitiesToLayout, LayoutRelationship[] relationshipsToConsider)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Verifies the endpoints of the relationships are entities in the entitiesToLayout list. Allows other classes in this package to use this method to verify the input
    • getLocalLocation

      protected DisplayIndependentPoint getLocalLocation(InternalNode[] entitiesToLayout, double x, double y, DisplayIndependentRectangle realBounds)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Gets the location in the layout bounds for this node
      Parameters:
      x -
      y -
    • defaultFitWithinBounds

      protected void defaultFitWithinBounds(InternalNode[] entitiesToLayout, DisplayIndependentRectangle realBounds)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Find an appropriate size for the given nodes, then fit them into the given bounds. The relative locations of the nodes to each other must be preserved. Child classes should set flag reresizeEntitiesAfterLayout to false if they want to preserve node sizes.
    • defaultFitWithinBounds

      protected void defaultFitWithinBounds(InternalNode[] entitiesToLayout, InternalRelationship[] relationships, DisplayIndependentRectangle realBounds)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Find an appropriate size for the given nodes, then fit them into the given bounds. The relative locations of the nodes to each other must be preserved. Child classes should set flag reresizeEntitiesAfterLayout to false if they want to preserve node sizes.
    • getLayoutBounds

      protected DisplayIndependentRectangle getLayoutBounds(InternalNode[] entitiesToLayout, boolean includeNodeSize)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Find the bounds in which the nodes are located. Using the bounds against the real bounds of the screen, the nodes can proportionally be placed within the real bounds. The bounds can be determined either including the size of the nodes or not. If the size is not included, the bounds will only be guaranteed to include the center of each node.
    • setEntityAspectRatio

      public void setEntityAspectRatio(double ratio)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Set the width to height ratio you want the entities to use
      Specified by:
      setEntityAspectRatio in interface LayoutAlgorithm.Zest1
    • getEntityAspectRatio

      public double getEntityAspectRatio()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the width to height ratio this layout will use to set the size of the entities.
      Specified by:
      getEntityAspectRatio in interface LayoutAlgorithm.Zest1
    • addProgressListener

      public void addProgressListener(ProgressListener listener)
      Deprecated, for removal: This API element is subject to removal in a future version.
      A layout algorithm could take an uncomfortable amout of time to complete. To relieve some of the mystery, the layout algorithm will notify each ProgressListener of its progress.
      Specified by:
      addProgressListener in interface LayoutAlgorithm.Zest1
      Specified by:
      addProgressListener in interface Stoppable
    • removeProgressListener

      public void removeProgressListener(ProgressListener listener)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Removes the given progress listener, preventing it from receiving any more updates.
      Specified by:
      removeProgressListener in interface LayoutAlgorithm.Zest1
    • updateLayoutLocations

      protected void updateLayoutLocations(InternalNode[] nodes)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Updates the layout locations so the external nodes know about the new locations
    • fireProgressStarted

      protected void fireProgressStarted(int totalNumberOfSteps)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • fireProgressEnded

      protected void fireProgressEnded(int totalNumberOfSteps)
      Deprecated, for removal: This API element is subject to removal in a future version.
    • fireProgressUpdated

      protected void fireProgressUpdated(int currentStep, int totalNumberOfSteps)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Since:
      1.5
    • fireProgressEvent

      protected void fireProgressEvent(int currentStep, int totalNumberOfSteps)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Fires an event to notify all of the registered ProgressListeners that another step has been completed in the algorithm.
      Parameters:
      currentStep - The current step completed.
      totalNumberOfSteps - The total number of steps in the algorithm.
    • getNumberOfProgressListeners

      protected int getNumberOfProgressListeners()
      Deprecated, for removal: This API element is subject to removal in a future version.
    • setLayoutContext

      public void setLayoutContext(LayoutContext context)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: LayoutAlgorithm
      Sets the layout context for this algorithm. The receiver will unregister from its previous layout context and register to the new one (registration means for example adding listeners). After a call to this method, the receiving algorithm can compute and cache internal data related to given context and perform an initial layout.
      Specified by:
      setLayoutContext in interface LayoutAlgorithm
      Parameters:
      context - a new layout context or null if this algorithm should not perform any layout
      Since:
      2.0
    • applyLayout

      public void applyLayout(boolean clean)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: LayoutAlgorithm
      Makes this algorithm perform layout computation and apply it to its context.
      Specified by:
      applyLayout in interface LayoutAlgorithm
      Parameters:
      clean - if true the receiver should assume that the layout context has changed significantly and recompute the whole layout even if it keeps track of changes with listeners. False can be used after dynamic layout in a context is turned back on so that layout algorithm working in background can apply accumulated changes. Static layout algorithm can ignore this call entirely if clean is false.
      Since:
      2.0