mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-06 03:50:02 +02:00
GP-737 new graph layout branch - fixed help anchor issues and finished
review suggestions.
This commit is contained in:
parent
bdcf82e3e1
commit
43b940e0a9
3 changed files with 21 additions and 21 deletions
|
@ -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>
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue