projects
/
sbp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
checkpoint
[sbp.git]
/
src
/
edu
/
berkeley
/
sbp
/
util
/
GraphViz.java
diff --git
a/src/edu/berkeley/sbp/util/GraphViz.java
b/src/edu/berkeley/sbp/util/GraphViz.java
index
a92e298
..
13899bb
100644
(file)
--- 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)
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() {
}
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 ");
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;
boolean first = true;
for(Node n : edges) {
if (!first) pw.print("|");
first = false;
- pw.print("<"+n.name()+">");
+ pw.print("<node_"+n.idx+">");
pw.print(StringUtil.escapify(n.label,"\\\""));
}
pw.print(StringUtil.escapify(n.label,"\\\""));
}
- pw.print("}\"");
+ if (!complex) pw.print("}");
+ pw.print("\"");
} else {
pw.print(" label=\"");
pw.print(StringUtil.escapify(label,"\\\""));
} else {
pw.print(" label=\"");
pw.print(StringUtil.escapify(label,"\\\""));
@@
-102,7
+108,7
@@
public class GraphViz {
public void dump(PrintWriter pw) {
IdentityHashMap<Node,Node> done = new IdentityHashMap<Node,Node>();
public void dump(PrintWriter pw) {
IdentityHashMap<Node,Node> done = new IdentityHashMap<Node,Node>();
- 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())
for(Group g : groups.values()) {
pw.println(" { rank=same;\n");
for(Node n : groups.keySet())