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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classA utility class used to track cells whilst sorting occurs on the median values. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intThe total number of crossings found in the best configuration so farprotected intprotected intThe maximum number of iterations to perform whilst reducing edge crossingsprotected intprotected Object[][]Stores each rank as a collection of cells in the best order found for each layer so farprotected JGraphLayoutProgressThe layout progress bar -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intcalculateRankCrossing(int i, JGraphHierarchyModel model) Calculates the number of edges crossings between the specified rank and the rank below itReturns the progress object that represents the progress of the current layout run.run(JGraphFacade facade, JGraphHierarchyModel model) Performs a vertex ordering within ranks as described by Gansner et al 1993
-
Field Details
-
maxIterations
protected int maxIterationsThe maximum number of iterations to perform whilst reducing edge crossings -
nestedBestRanks
Stores each rank as a collection of cells in the best order found for each layer so far -
currentBestCrossings
protected int currentBestCrossingsThe total number of crossings found in the best configuration so far -
iterationsWithoutImprovement
protected int iterationsWithoutImprovement -
maxNoImprovementIterations
protected int maxNoImprovementIterations -
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:
runin interfaceJGraphHierarchicalLayoutStep- Parameters:
facade- the facade describing the input graphmodel- an internal model of the hierarchical layout- Returns:
- the updated hierarchy model
-
calculateRankCrossing
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
Description copied from interface:JGraphLayout.StoppableReturns 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:
getProgressin interfaceJGraphLayout.Stoppable- Returns:
- Returns the progress.
-