Skip to content

Commit 9cedc78

Browse files
committed
improve align in dependency graph
1 parent 229cfe5 commit 9cedc78

1 file changed

Lines changed: 29 additions & 28 deletions

File tree

src/graph/ReactorGraph.java

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ public static void main(String[] args) {
144144
Files.write(Paths.get("target/graph/intermediary_graph.dot"), dotContent.getBytes());
145145
System.out.println("Intermediary graph written to intermediary_graph.dot");
146146

147-
// Render graph to SVF
147+
// Render graph to SVG
148148
Graphviz.fromGraph(clusteredGraph)
149149
.engine(Engine.FDP)
150150
.render(Format.SVG).toFile(new File("target/graph/intermediary_graph.svg"));
@@ -185,40 +185,30 @@ private static MutableGraph generateHighLevelGraph(MutableGraph clusteredGraph,
185185
MutableGraph cluster = entry.getValue();
186186

187187
String headerColor = clusterName.startsWith("Maven") ? "black" : "#808080"; // #808080 is a middle gray
188+
String prefix;
189+
switch (clusterName) {
190+
case "MavenAPI": prefix = "../api/"; break;
191+
case "MavenImplementation": prefix = "../impl/"; break;
192+
case "MavenCompatibility": prefix = "../compat/"; break;
193+
case "MavenResolver": prefix = "https://maven.apache.org/resolver/"; break;
194+
default: prefix = null;
195+
}
196+
188197
StringBuilder labelBuilder = new StringBuilder();
189-
labelBuilder.append("<table border='0' cellborder='0' cellspacing='0'>");
190-
labelBuilder.append("<tr><td bgcolor='")
198+
labelBuilder.append("<table border='0' cellborder='0' cellspacing='0'>")
199+
.append("<th border='1'><td cellpadding='5' bgcolor='")
191200
.append(headerColor)
192-
.append("'><font color='white'>")
201+
.append("'><font color='white'><b>&nbsp;")
193202
.append(key)
194-
.append("</font></td></tr>");
203+
.append("&nbsp;</b></font></td></th>");
195204
cluster.nodes().stream().map(MutableNode::name).map(Label::toString).sorted()
196205
.forEach(nodeName -> {
197-
labelBuilder.append("<tr>");
198-
String prefix = null;
199-
switch (clusterName) {
200-
case "MavenAPI": prefix = "../api/"; break;
201-
case "MavenImplementation": prefix = "../impl/"; break;
202-
case "MavenCompatibility": prefix = "../compat/"; break;
203-
case "MavenResolver": prefix = "https://maven.apache.org/resolver/"; break;
204-
}
206+
labelBuilder.append("<tr><td align='left'");
205207
if (prefix != null) {
206-
labelBuilder.append("<td")
207-
.append(" href=\"")
208-
.append(prefix)
209-
.append(nodeName)
210-
.append("\"")
211-
.append(" title=\"")
212-
.append(nodeName)
213-
.append("\"")
214-
.append(" target=\"_parent\"")
215-
.append(">")
216-
.append(nodeName)
217-
.append("</td>");
218-
} else {
219-
labelBuilder.append("<td>").append(nodeName).append("</td>");
208+
labelBuilder.append(" href='").append(prefix).append(nodeName)
209+
.append("' title='").append(nodeName).append("' target='_parent'");
220210
}
221-
labelBuilder.append("</tr>");
211+
labelBuilder.append(">").append(nodeName).append("</td></tr>");
222212
});
223213
labelBuilder.append("</table>");
224214

@@ -257,6 +247,17 @@ private static MutableGraph generateHighLevelGraph(MutableGraph clusteredGraph,
257247
}
258248
}
259249

250+
// force top group
251+
MutableGraph topGroup = mutGraph("top")
252+
.setDirected(true)
253+
.graphAttrs().add(Rank.inSubgraph(Rank.RankType.SAME))
254+
.add(
255+
mutNode("MavenResolver"),
256+
mutNode("MavenAPI"),
257+
mutNode("MavenImplementation")
258+
);
259+
highLevelGraph.add(topGroup);
260+
260261
return highLevelGraph;
261262
}
262263

0 commit comments

Comments
 (0)