GP-737 new graph layout branch - fixed help anchor issues and finished

review suggestions.
This commit is contained in:
ghidra007 2021-05-07 21:06:42 +00:00
parent bdcf82e3e1
commit 43b940e0a9
3 changed files with 21 additions and 21 deletions

View file

@ -111,7 +111,7 @@
<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>
@ -133,32 +133,28 @@
line up those favored edges so they are vertical in the presentation. There are four layering line up those favored edges so they are vertical in the presentation. There are four layering
algorithms:</LI> algorithms:</LI>
<LI style="list-style: none"/>
<UL> <UL>
<LI><A name="Hierarchical_MinCross_Top_Down"/> <LI><B>Top Down</B> - Biases the vertices to the top. Sources on the top row.</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><B>Longest Path</B> - Biases the vertices to the bottom. Sinks are on the bottom row.</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><B>Network Simplex</B> - Layers after finding an 'optimal tree' by not considering longer edges.</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><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. Tends to balance the graph around the middle.</LI> length. Tends to balance the graph around the middle.</LI>
</UL> </UL>
</LI>
<LI><A name="Circle"/> <LI><A name="Circle"/>
<B>Circle</B> will arrange vertices in a Circle. </LI> <B>Circle</B> will arrange vertices in a Circle. </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> algorithm. 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>
@ -171,8 +167,8 @@
<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"/>
<B>GEM</B> is a Force Directed layout with locally separated components</LI> <B>GEM (Graph Embedder)</B> is a Force Directed layout with locally separated components</LI>
</UL> </UL>
</BLOCKQUOTE> </BLOCKQUOTE>
</BLOCKQUOTE> </BLOCKQUOTE>

View file

@ -755,14 +755,16 @@ public class DefaultGraphDisplay implements GraphDisplay {
ActionState<String> state = new ActionState<>(layoutName, ActionState<String> state = new ActionState<>(layoutName,
DefaultDisplayGraphIcons.LAYOUT_ALGORITHM_ICON, layoutName); DefaultDisplayGraphIcons.LAYOUT_ALGORITHM_ICON, layoutName);
if (layoutName.contains("Vertical Hierarchical MinCross")) { // condense hierarchical action help to the top-level help description
layoutName = "Vertical Hierarchical MinCross"; String anchor = layoutName;
if (layoutName.contains(LayoutFunction.VERT_MIN_CROSS)) {
anchor = LayoutFunction.VERT_MIN_CROSS;
} }
else if (layoutName.contains("Hierarchical MinCross")) { else if (layoutName.contains(LayoutFunction.MIN_CROSS)) {
layoutName = "Hierarchical MinCross"; anchor = LayoutFunction.MIN_CROSS;
} }
state.setHelpLocation(new HelpLocation(ACTION_OWNER, layoutName)); state.setHelpLocation(new HelpLocation(ACTION_OWNER, anchor));
actionStates.add(state); actionStates.add(state);
} }
return actionStates; return actionStates;

View file

@ -41,10 +41,12 @@ class LayoutFunction
static final String CIRCLE = "Circle"; static final String CIRCLE = "Circle";
static final String TIDIER_TREE = "Compact Hierarchical"; static final String TIDIER_TREE = "Compact Hierarchical";
static final String TIDIER_RADIAL_TREE = "Compact Radial"; static final String TIDIER_RADIAL_TREE = "Compact Radial";
static final String MIN_CROSS = "Hierarchical MinCross"; //not an alg, just a parent category
static final String MIN_CROSS_TOP_DOWN = "Hierarchical MinCross Top Down"; static final String MIN_CROSS_TOP_DOWN = "Hierarchical MinCross Top Down";
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 VERT_MIN_CROSS = "Vertical Hierarchical MinCross"; //not an alg, just a parent category
static final String VERT_MIN_CROSS_TOP_DOWN = "Vertical Hierarchical MinCross Top Down"; static final String VERT_MIN_CROSS_TOP_DOWN = "Vertical Hierarchical MinCross Top Down";
static final String VERT_MIN_CROSS_LONGEST_PATH = "Vertical Hierarchical MinCross Longest Path"; static final String VERT_MIN_CROSS_LONGEST_PATH = "Vertical Hierarchical MinCross Longest Path";
static final String VERT_MIN_CROSS_NETWORK_SIMPLEX = "Vertical Hierarchical MinCross Network Simplex"; static final String VERT_MIN_CROSS_NETWORK_SIMPLEX = "Vertical Hierarchical MinCross Network Simplex";
@ -52,7 +54,7 @@ class LayoutFunction
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";
static final String GEM = "Gem (Graph Embedder)"; static final String GEM = "GEM";
Predicate<AttributedEdge> favoredEdgePredicate; Predicate<AttributedEdge> favoredEdgePredicate;
Comparator<AttributedEdge> edgeTypeComparator; Comparator<AttributedEdge> edgeTypeComparator;