update layout names and help text.

This commit is contained in:
Tom Nelson 2021-03-03 19:51:52 +00:00 committed by tom
parent b57744d4e0
commit ccaf1fea59
2 changed files with 42 additions and 40 deletions

View file

@ -111,63 +111,65 @@
<BLOCKQUOTE> <BLOCKQUOTE>
<BLOCKQUOTE> <BLOCKQUOTE>
<UL> <UL>
<LI><A name="Compact_Hierarchical"> <LI><A name="Compact_Hierarchical"/>
<B>Compact Hierarchical</B> is the <B>TidierTree Layout Algorithm</B>. It builds a tree <B>Compact Hierarchical</B> is the <B>TidierTree Layout Algorithm</B>. It builds a tree
structure and attempts to reduce horizontal space.</LI> structure and attempts to reduce horizontal space.</LI>
<LI><A name="Hierarchical"> <LI><A name="Hierarchical"/>
<B>Hierarchical</B> is a basic Tree algorithm. It prioritizes 'important' edges while <B>Hierarchical</B> is a basic Tree algorithm with the root(s) at the top.</LI>
constructing the tree.</LI>
<LI><A name="Compact Radial"> <LI><A name="Compact Radial"/>
<B>Compact Radial</B> is the <B>TidierTree Layout Algorithm</B> with the root(s) at the <B>Compact Radial</B> is the <B>TidierTree Layout Algorithm</B> with the root(s) at the
center and child vertices radiating outwards.</LI> center and child vertices radiating outwards.</LI>
<LI><B>Hierarchical MinCross</B> is the <B>Sugiyama Layout Algorithm</B>. It attempts to <LI><B>Hierarchical MinCross</B> is the <B>Sugiyama Layout Algorithm with optimizations</B>. It attempts to
route edges around vertices in order to reduce crossing.There are four layering route edges around vertices in order to reduce crossing. There are four layering
algorithms:</LI> algorithms (below)</LI>
<LI style="list-style: none"> <LI><B>Vertical Hierarchical MinCross</B> is the <B>Sugiyama Layout Algorithm with optimizations</B>. It attempts to
route edges around vertices in order to reduce crossing. If there is a favored EdgeType, an attempt is made to
line up those favored edges so they are vertical in the presentation. There are four layering
algorithms:</LI>
<LI style="list-style: none"/>
<UL> <UL>
<LI><A name="Hierarchical_MinCross_Top_Down"> <LI><A name="Hierarchical_MinCross_Top_Down"/>
<B>Top Down</B> - biases the vertices to the top</LI> <B>Top Down</B> - Biases the vertices to the top. Sources on the top row.</LI>
<LI><A name="Hierarchical_MinCross_Longest_Path"> <LI><A name="Hierarchical_MinCross_Longest_Path"/>
<B>Longest Path</B> - biases the vertices to the bottom</LI> <B>Longest Path</B> - Biases the vertices to the bottom. Sinks are on the bottom row.</LI>
<LI><A name="Hierarchical_MinCross_Network_Simplex"> <LI><A name="Hierarchical_MinCross_Network_Simplex"/>
<B>Network Simplex</B> - layers after finding an 'optimal tree'</LI> <B>Network Simplex</B> - Layers after finding an 'optimal tree' by not considering longer edges.</LI>
<LI><A name="Hierarchical_MinCross_Coffman_Graham"> <LI><A name="Hierarchical_MinCross_Coffman_Graham"/>
<B>Coffman Graham</B> - biases the vertices using a scheduling algorithm to minimize <B>Coffman Graham</B> - Biases the vertices using a scheduling algorithm to minimize
length</LI> length. Tends to balance the graph around the middle.</LI>
</UL> </UL>
</LI> </LI>
<LI><A name="Circle"> <LI><A name="Circle"/>
<B>Circle</B> will arrange vertices in a Circle. If there are not too many edges (less <B>Circle</B> will arrange vertices in a Circle. </LI>
than specified in the jungrapht.circle.reduceEdgeCrossingMaxEdges property with a default
of 200), it will attempt to reduce edge crossing by rearranging the vertices.</LI>
<LI><A name="Force_Balanced"> <LI><A name="Force_Balanced"/>
<B>Force Balanced</B> is a <B>Force Directed Layout Algorithm</B> using the the <B>Kamada <B>Force Balanced</B> is a <B>Force Directed Layout Algorithm</B> using the the <B>Kamada
Kawai</B> approach. It attempts to balance the graph by considering vertices and edge Kawai</B> algorithm. It attempts to balance the graph by considering vertices and edge
connections.</LI> connections.</LI>
<LI><A name="Force_Directed"> <LI><A name="Force_Directed"/>
<B>Force Directed</B> is a <B>Force Directed Layout Algorithm</B> using the <B>Force Directed</B> is a <B>Force Directed Layout Algorithm</B> using the
<B>Fructermann Reingold</B> approach. It pushes unconnected vertices apart and draws <B>Fructermann Reingold</B> approach. It pushes unconnected vertices apart and draws
connected vertices together.</LI> connected vertices together.</LI>
<LI><A name="Radial"> <LI><A name="Radial"/>
<B>Radial</B> is a Tree structure with the root(s) at the center and child vertices <B>Radial</B> is a Tree structure with the root(s) at the center and child vertices
radiating outwards.</LI> radiating outwards.</LI>
<LI><A name="Balloon"> <LI><A name="Balloon"/>
<B>Balloon</B> is a Tree structure with the root(s) at the centers of circles in a radial <B>Balloon</B> is a Tree structure with the root(s) at the centers of circles in a radial
pattern</LI> pattern</LI>
<LI><A name="Gem__Graph_Embedder_"> <LI><A name="GEM__Graph_Embedder_"/>
<B>GEM</B> is a Force Directed layout with locally separated components</LI> <B>GEM</B> is a Force Directed layout with locally separated components</LI>
</UL> </UL>
</BLOCKQUOTE> </BLOCKQUOTE>

View file

@ -45,10 +45,10 @@ class LayoutFunction
static final String MIN_CROSS_LONGEST_PATH = "Hierarchical MinCross Longest Path"; static final String MIN_CROSS_LONGEST_PATH = "Hierarchical MinCross Longest Path";
static final String MIN_CROSS_NETWORK_SIMPLEX = "Hierarchical MinCross Network Simplex"; static final String MIN_CROSS_NETWORK_SIMPLEX = "Hierarchical MinCross Network Simplex";
static final String MIN_CROSS_COFFMAN_GRAHAM = "Hierarchical MinCross Coffman Graham"; static final String MIN_CROSS_COFFMAN_GRAHAM = "Hierarchical MinCross Coffman Graham";
static final String EXP_MIN_CROSS_TOP_DOWN = "Experimental Hierarchical MinCross Top Down"; static final String VERT_MIN_CROSS_TOP_DOWN = "Vertical Hierarchical MinCross Top Down";
static final String EXP_MIN_CROSS_LONGEST_PATH = "Experimental Hierarchical MinCross Longest Path"; static final String VERT_MIN_CROSS_LONGEST_PATH = "Vertical Hierarchical MinCross Longest Path";
static final String EXP_MIN_CROSS_NETWORK_SIMPLEX = "Experimental Hierarchical MinCross Network Simplex"; static final String VERT_MIN_CROSS_NETWORK_SIMPLEX = "Vertical Hierarchical MinCross Network Simplex";
static final String EXP_MIN_CROSS_COFFMAN_GRAHAM = "Experimental Hierarchical MinCross Coffman Graham"; static final String VERT_MIN_CROSS_COFFMAN_GRAHAM = "Vertical Hierarchical MinCross Coffman Graham";
static final String TREE = "Hierarchical"; static final String TREE = "Hierarchical";
static final String RADIAL = "Radial"; static final String RADIAL = "Radial";
static final String BALLOON = "Balloon"; static final String BALLOON = "Balloon";
@ -66,10 +66,10 @@ class LayoutFunction
return new String[] { TIDIER_TREE, TREE, return new String[] { TIDIER_TREE, TREE,
TIDIER_RADIAL_TREE, MIN_CROSS_TOP_DOWN, MIN_CROSS_LONGEST_PATH, TIDIER_RADIAL_TREE, MIN_CROSS_TOP_DOWN, MIN_CROSS_LONGEST_PATH,
MIN_CROSS_NETWORK_SIMPLEX, MIN_CROSS_COFFMAN_GRAHAM, CIRCLE, MIN_CROSS_NETWORK_SIMPLEX, MIN_CROSS_COFFMAN_GRAHAM, CIRCLE,
EXP_MIN_CROSS_TOP_DOWN, VERT_MIN_CROSS_TOP_DOWN,
EXP_MIN_CROSS_LONGEST_PATH, VERT_MIN_CROSS_LONGEST_PATH,
EXP_MIN_CROSS_NETWORK_SIMPLEX, VERT_MIN_CROSS_NETWORK_SIMPLEX,
EXP_MIN_CROSS_COFFMAN_GRAHAM, VERT_MIN_CROSS_COFFMAN_GRAHAM,
KAMADA_KAWAI, FRUCTERMAN_REINGOLD, RADIAL, BALLOON, GEM KAMADA_KAWAI, FRUCTERMAN_REINGOLD, RADIAL, BALLOON, GEM
}; };
} }
@ -112,25 +112,25 @@ class LayoutFunction
.<AttributedVertex, AttributedEdge> edgeAwareBuilder() .<AttributedVertex, AttributedEdge> edgeAwareBuilder()
.edgeComparator(edgeTypeComparator) .edgeComparator(edgeTypeComparator)
.layering(Layering.COFFMAN_GRAHAM); .layering(Layering.COFFMAN_GRAHAM);
case EXP_MIN_CROSS_TOP_DOWN: case VERT_MIN_CROSS_TOP_DOWN:
return EiglspergerLayoutAlgorithm return EiglspergerLayoutAlgorithm
.<AttributedVertex, AttributedEdge> edgeAwareBuilder() .<AttributedVertex, AttributedEdge> edgeAwareBuilder()
.edgeComparator(edgeTypeComparator) .edgeComparator(edgeTypeComparator)
.favoredEdgePredicate(favoredEdgePredicate) .favoredEdgePredicate(favoredEdgePredicate)
.layering(Layering.TOP_DOWN); .layering(Layering.TOP_DOWN);
case EXP_MIN_CROSS_LONGEST_PATH: case VERT_MIN_CROSS_LONGEST_PATH:
return EiglspergerLayoutAlgorithm return EiglspergerLayoutAlgorithm
.<AttributedVertex, AttributedEdge> edgeAwareBuilder() .<AttributedVertex, AttributedEdge> edgeAwareBuilder()
.edgeComparator(edgeTypeComparator) .edgeComparator(edgeTypeComparator)
.favoredEdgePredicate(favoredEdgePredicate) .favoredEdgePredicate(favoredEdgePredicate)
.layering(Layering.LONGEST_PATH); .layering(Layering.LONGEST_PATH);
case EXP_MIN_CROSS_NETWORK_SIMPLEX: case VERT_MIN_CROSS_NETWORK_SIMPLEX:
return EiglspergerLayoutAlgorithm return EiglspergerLayoutAlgorithm
.<AttributedVertex, AttributedEdge> edgeAwareBuilder() .<AttributedVertex, AttributedEdge> edgeAwareBuilder()
.edgeComparator(edgeTypeComparator) .edgeComparator(edgeTypeComparator)
.favoredEdgePredicate(favoredEdgePredicate) .favoredEdgePredicate(favoredEdgePredicate)
.layering(Layering.NETWORK_SIMPLEX); .layering(Layering.NETWORK_SIMPLEX);
case EXP_MIN_CROSS_COFFMAN_GRAHAM: case VERT_MIN_CROSS_COFFMAN_GRAHAM:
return EiglspergerLayoutAlgorithm return EiglspergerLayoutAlgorithm
.<AttributedVertex, AttributedEdge> edgeAwareBuilder() .<AttributedVertex, AttributedEdge> edgeAwareBuilder()
.edgeComparator(edgeTypeComparator) .edgeComparator(edgeTypeComparator)