From d95659dd73e9dee2d18417535e4c7d5a010033b6 Mon Sep 17 00:00:00 2001 From: adam Date: Sat, 11 Feb 2006 19:01:00 -0500 Subject: [PATCH] checkpoint darcs-hash:20060212000100-5007d-4c92cbbb7c01833e7a607e9793985715c6f352e5.gz --- src/edu/berkeley/sbp/Forest.java | 3 +++ src/edu/berkeley/sbp/util/GraphViz.java | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) 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()) -- 1.7.10.4