Class JGraphMedianHybridCrossingReduction

java.lang.Object
com.jgraph.layout.hierarchical.JGraphMedianHybridCrossingReduction
All Implemented Interfaces:
JGraphHierarchicalLayoutStep, JGraphLayout.Stoppable

public class JGraphMedianHybridCrossingReduction extends Object implements JGraphHierarchicalLayoutStep, JGraphLayout.Stoppable
Performs a vertex ordering within ranks as described by Gansner et al 1993
  • Field Details

    • maxIterations

      protected int maxIterations
      The maximum number of iterations to perform whilst reducing edge crossings
    • nestedBestRanks

      protected Object[][] nestedBestRanks
      Stores each rank as a collection of cells in the best order found for each layer so far
    • currentBestCrossings

      protected int currentBestCrossings
      The total number of crossings found in the best configuration so far
    • iterationsWithoutImprovement

      protected int iterationsWithoutImprovement
    • maxNoImprovementIterations

      protected int maxNoImprovementIterations
    • progress

      protected JGraphLayoutProgress progress
      The layout progress bar
  • Constructor Details

    • JGraphMedianHybridCrossingReduction

      public JGraphMedianHybridCrossingReduction()
  • Method Details

    • run

      Performs a vertex ordering within ranks as described by Gansner et al 1993
      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
    • calculateRankCrossing

      protected int calculateRankCrossing(int i, JGraphHierarchyModel model)
      Calculates the number of edges crossings between the specified rank and the rank below it
      Parameters:
      i - the topmost rank of the pair ( higher rank value )
      model - the internal hierarchy model of the graph
      Returns:
      the number of edges crossings with the rank beneath
    • getProgress

      public JGraphLayoutProgress getProgress()
      Description copied from interface: JGraphLayout.Stoppable
      Returns the progress object that represents the progress of the current layout run. Once created, this instance should not be replaced during a layout run. For new runs you should use the reset method on the progress. Consequently, the max progress is only valid after the run method has been invoked, which means you should use a listener if you spawn a new thread.

      By convention, the layout must check the isStopped method in its inner-most loops and return immediately if the method returns true.

      Specified by:
      getProgress in interface JGraphLayout.Stoppable
      Returns:
      Returns the progress.