Class JGraphCoordinateAssignment

java.lang.Object
com.jgraph.layout.hierarchical.JGraphCoordinateAssignment
All Implemented Interfaces:
JGraphHierarchicalLayoutStep

public class JGraphCoordinateAssignment extends Object implements JGraphHierarchicalLayoutStep
Sets the horizontal locations of node and edge dummy nodes on each layer. Uses median down and up weighings as well heuristic to straighten edges as far as possible.
  • Field Details

    • intraCellSpacing

      protected double intraCellSpacing
      The minimum buffer between cells on the same rank
    • interRankCellSpacing

      protected double interRankCellSpacing
      The minimum distance between cells on adjacent ranks
    • parallelEdgeSpacing

      protected double parallelEdgeSpacing
      The distance between each parallel edge on each ranks for long edges
    • maxIterations

      protected int maxIterations
      The number of heuristic iterations to run
    • orientation

      protected int orientation
      The position of the root ( start ) node(s) relative to the rest of the laid out graph
    • initialX

      protected double initialX
      The minimum x position node placement starts at
    • limitX

      protected double limitX
      The maximum x value this positioning lays up to
    • currentXDelta

      protected double currentXDelta
      The sum of x-displacements for the current iteration
    • widestRank

      protected int widestRank
      The rank that has the widest x position
    • widestRankValue

      protected double widestRankValue
      The X-coordinate of the edge of the widest rank
    • rankWidths

      protected double[] rankWidths
      The width of all the ranks
    • rankY

      protected double[] rankY
    • fineTuning

      protected boolean fineTuning
      Whether or not to perform local optimisations and iterate multiple times through the algorithm
    • compactLayout

      protected boolean compactLayout
      Whether or not to pull together sections of layout into empty space
    • nextLayerConnectedCache

      protected JGraphAbstractHierarchyCell[][] nextLayerConnectedCache
      A store of connections to the layer above for speed
    • previousLayerConnectedCache

      protected JGraphAbstractHierarchyCell[][] previousLayerConnectedCache
      A store of connections to the layer below for speed
  • Constructor Details

    • JGraphCoordinateAssignment

      public JGraphCoordinateAssignment(double intraCellSpacing, double interRankCellSpacing, int orientation, boolean compactLayout, double initialX, double parallelEdgeSpacing)
      Creates a JGraphCoordinateAssignment
      Parameters:
      intraCellSpacing - the minimum buffer between cells on the same rank
      interRankCellSpacing - the minimum distance between cells on adjacent ranks
      orientation - the position of the root node(s) relative to the graph
      initialX - the leftmost coordinate node placement starts at
  • Method Details

    • run

      A basic horizontal coordinate assignment algorithm
      Specified by:
      run in interface JGraphHierarchicalLayoutStep
      Parameters:
      facade - the facade describing the input graph
      model - an internal model of the hierarchical layout
      Returns:
      the updated hierarchy model
    • rankMedianPosition

      protected void rankMedianPosition(int rankValue, JGraphHierarchyModel model, int nextRankValue)
      Performs median minimisation over one rank.
      Parameters:
      rankValue - the layer number of this rank
      model - an internal model of the hierarchical layout
      nextRankValue - the layer number whose connected cels are to be laid out relative to
    • rankCoordinates

      protected void rankCoordinates(int rankValue, JGraphFacade facade, JGraphHierarchyModel model)
      Sets up the layout in an initial positioning. All the first cells in each rank are moved to the left and the rest of the rank inserted as close together as their size and buffering permits. This method works on just the specified rank.
      Parameters:
      rankValue - the current rank being processed
      facade - the facade describing the input graph
      model - an internal model of the hierarchical layout
    • calculateWidestRank

      protected void calculateWidestRank(JGraphFacade facade, JGraphHierarchyModel model)
      Calculates the width rank in the hierarchy. Also set the y value of each rank whilst performing the calculation
      Parameters:
      facade - the facade describing the input graph
      model - an internal model of the hierarchical layout
    • getInterRankCellSpacing

      public double getInterRankCellSpacing()
      Returns:
      Returns the interRankCellSpacing.
    • setInterRankCellSpacing

      public void setInterRankCellSpacing(double interRankCellSpacing)
      Parameters:
      interRankCellSpacing - The interRankCellSpacing to set.
    • getIntraCellSpacing

      public double getIntraCellSpacing()
      Returns:
      Returns the intraCellSpacing.
    • setIntraCellSpacing

      public void setIntraCellSpacing(double intraCellSpacing)
      Parameters:
      intraCellSpacing - The intraCellSpacing to set.
    • getOrientation

      public int getOrientation()
      Returns:
      Returns the orientation.
    • setOrientation

      public void setOrientation(int orientation)
      Parameters:
      orientation - The orientation to set.
    • getLimitX

      public double getLimitX()
      Returns:
      Returns the limitX.
    • setLimitX

      public void setLimitX(double limitX)
      Parameters:
      limitX - The limitX to set.
    • isFineTuning

      public boolean isFineTuning()
      Returns:
      Returns the fineTuning.
    • setFineTuning

      public void setFineTuning(boolean fineTuning)
      Parameters:
      fineTuning - The fineTuning to set.
    • isCompactLayout

      public boolean isCompactLayout()
      Returns:
      Returns the compactLayout.
    • setCompactLayout

      public void setCompactLayout(boolean compactLayout)
      Parameters:
      compactLayout - The compactLayout to set.
    • setLoggerLevel

      public void setLoggerLevel(Level level)
      Sets the logging level of this class
      Parameters:
      level - the logging level to set