X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FGraphViz.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FGraphViz.java;h=13899bb2540b108404b4774eebd4dc9f0a57bd5b;hp=a92e298b5af1c2087cc434bd8f2b298b13e9a6d3;hb=d95659dd73e9dee2d18417535e4c7d5a010033b6;hpb=142b31e063c97d2d6dc141a9e687d49b7f2ab826 diff --git a/src/edu/berkeley/sbp/util/GraphViz.java b/src/edu/berkeley/sbp/util/GraphViz.java index a92e298..13899bb 100644 --- a/src/edu/berkeley/sbp/util/GraphViz.java +++ b/src/edu/berkeley/sbp/util/GraphViz.java @@ -38,7 +38,7 @@ public class GraphViz { public void edges(PrintWriter pw) { if (simple()) return; for(Node n : edges) - pw.println(" "+name()+" -> " + n.name()); + pw.println(" "+name()+" -> " + n.name() + " [color="+color+"];\n"); } public int numEdges() { return edges.size(); } public boolean simple() { @@ -63,15 +63,21 @@ public class GraphViz { if (directed) pw.print("ordering=out"); if (simple()) { pw.print(" shape=record "); - pw.print(" label=\"{"); + pw.print(" label=\""); + boolean complex = false; + for(Node n : edges) + if (n.edges.size()>0) + complex = true; + if (!complex) pw.print("{"); boolean first = true; for(Node n : edges) { if (!first) pw.print("|"); first = false; - pw.print("<"+n.name()+">"); + pw.print(""); pw.print(StringUtil.escapify(n.label,"\\\"")); } - pw.print("}\""); + if (!complex) pw.print("}"); + pw.print("\""); } else { pw.print(" label=\""); pw.print(StringUtil.escapify(label,"\\\"")); @@ -102,7 +108,7 @@ public class GraphViz { public void dump(PrintWriter pw) { IdentityHashMap done = new IdentityHashMap(); - pw.println("digraph G {\n"); + pw.println("digraph G { rankdir=LR; \n"); for(Group g : groups.values()) { pw.println(" { rank=same;\n"); for(Node n : groups.keySet())