From: adam Date: Sun, 12 Feb 2006 00:01:00 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~291 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=d95659dd73e9dee2d18417535e4c7d5a010033b6 checkpoint darcs-hash:20060212000100-5007d-4c92cbbb7c01833e7a607e9793985715c6f352e5.gz --- diff --git a/src/edu/berkeley/sbp/Forest.java b/src/edu/berkeley/sbp/Forest.java index b9c4fcc..90c4e43 100644 --- a/src/edu/berkeley/sbp/Forest.java +++ b/src/edu/berkeley/sbp/Forest.java @@ -70,7 +70,10 @@ public abstract class Forest /*extends PrintableTree>*/ impl edges(n); return n; } + boolean edges = false; public void edges(GraphViz.Node n) { + if (edges) return; + edges = true; for(int i=0; i " + 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())