| /******************************************************************************* |
| * Copyright (c) 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.draw2d.examples.graph; |
| |
| import java.util.Random; |
| |
| import org.eclipse.draw2d.graph.DirectedGraph; |
| import org.eclipse.draw2d.graph.DirectedGraphLayout; |
| import org.eclipse.draw2d.graph.Edge; |
| import org.eclipse.draw2d.graph.EdgeList; |
| import org.eclipse.draw2d.graph.Node; |
| import org.eclipse.draw2d.graph.NodeList; |
| |
| /** |
| * @author hudsonr |
| * @since 2.1 |
| */ |
| public class GraphTests { |
| public static DirectedGraph offsetTest() { |
| Node head, a1, a2, a3, a4, b1, b2, b3, b4; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| |
| nodes.add(head = new Node("Head")); |
| head.width = 100; |
| nodes.add(a1 = new Node("node a1")); |
| nodes.add(a2 = new Node("node a2")); |
| nodes.add(a3 = new Node("node a3")); |
| nodes.add(a4 = new Node("node a4")); |
| |
| nodes.add(b1 = new Node("node b1")); |
| nodes.add(b2 = new Node("node b2")); |
| nodes.add(b3 = new Node("node b3")); |
| nodes.add(b4 = new Node("node b4")); |
| |
| Edge e = new Edge(head, a1); |
| e.setSourceOffset(10); |
| edges.add(e); |
| |
| e = new Edge(head, b1); |
| e.setSourceOffset(90); |
| edges.add(e); |
| |
| a1.incomingOffset = 40; |
| b1.incomingOffset = 10; |
| a1.outgoingOffset = 10; |
| a2.incomingOffset = 40; |
| |
| a3.outgoingOffset = 10; |
| a4.incomingOffset = 40; |
| |
| edges.add(new Edge(b1, b2)); |
| edges.add(new Edge(b2, b3)); |
| edges.add(new Edge(b3, b4)); |
| |
| edges.add(new Edge(a1, a2)); |
| edges.add(e = new Edge(a2, a3)); |
| e.setSourceOffset(10); |
| e.setTargetOffset(40); |
| edges.add(new Edge(a3, a4)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| static Random rand = new Random(90); |
| |
| /** |
| * @param nodes |
| * @param row |
| */ |
| private static void addNodes(NodeList nodes, Node[] row) { |
| for (int i=0; i<row.length; i++) |
| if (row[i] != null) |
| nodes.add(row[i]); |
| } |
| |
| public static DirectedGraph anotherTour() { |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| Node row[], firstRow[]; |
| firstRow = new Node[4]; |
| firstRow[1] = new Node("h1"); |
| firstRow[2] = new Node("h2"); |
| firstRow[3] = new Node("h3"); |
| addNodes(nodes, firstRow); |
| row = joinRows(nodes, edges, firstRow, new int[] { |
| 1,1, |
| 1,2, |
| 1,3, |
| 2,3, |
| 2,4, |
| 3,3, |
| 3,4 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1, |
| 3,4, |
| 2,1, |
| 2,3, |
| 3,2, |
| 4,4 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,1,2, |
| 2,1,2,4, |
| 3,3, |
| 3,4,4,3, |
| 4,5 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,2,2,3,3,4,4,5,5,1,2,4,3,5,4 |
| }); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| |
| return graph; |
| } |
| |
| public static DirectedGraph balanceThis1() { |
| Node a,b1, b2, b3, b4,b5,c,d,e,f,g; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(b1 = new Node("node b1")); |
| nodes.add(b2 = new Node("node b2")); |
| nodes.add(b3 = new Node("node b3")); |
| nodes.add(b4 = new Node("node b4")); |
| nodes.add(b5 = new Node("node b5")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(e = new Node("node e")); |
| nodes.add(f = new Node("node f")); |
| nodes.add(g = new Node("node g")); |
| nodes.add(a = new Node("node a")); |
| |
| b3.width = b2.width = 90; |
| |
| edges.add(new Edge(c, d)); |
| edges.add(new Edge(c, e)); |
| edges.add(new Edge(e, f)); |
| edges.add(new Edge(e, g)); |
| edges.add(new Edge(a, b1)); |
| edges.add(new Edge(a, b2)); |
| edges.add(new Edge(a, b3)); |
| edges.add(new Edge(a, b4)); |
| edges.add(new Edge(a, b5)); |
| |
| edges.add(new Edge(b3, d)); |
| edges.add(new Edge(b4, f)); |
| |
| edges.add(new Edge(a, c)); |
| // edges.add(new Edge(b, g)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph balanceThis2() { |
| Node a,b2, b3, b4,c,d,e,f,g; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(b2 = new Node("node b2")); |
| nodes.add(b3 = new Node("node b3")); |
| nodes.add(b4 = new Node("node b4")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(e = new Node("node e")); |
| nodes.add(f = new Node("node f")); |
| nodes.add(g = new Node("node g")); |
| nodes.add(a = new Node("node a")); |
| |
| edges.add(new Edge(d, c)); |
| edges.add(new Edge(e, c)); |
| edges.add(new Edge(f, e)); |
| edges.add(new Edge(g, e)); |
| edges.add(new Edge(b2, a)); |
| edges.add(new Edge(b3, a)); |
| edges.add(new Edge(b4, a, 1, 2)); |
| |
| edges.add(new Edge(d, b3)); |
| edges.add(new Edge(f, b4)); |
| |
| edges.add(new Edge(c, a)); |
| // edges.add(new Edge(b, g)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph balanceThis3() { |
| Node top1, top2; |
| Node a1, a2, a3, a4; |
| Node b1, b2, b3, b4, b5, b6; |
| Node c1, c2, c3, c4; |
| Node bottom1, bottom2; |
| |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(top1 = new Node("Top 1")); |
| top1.width = 400; |
| |
| nodes.add(top2 = new Node("Top 2")); |
| top2.width = 400; |
| |
| nodes.add(a1 = new Node("a1")); |
| nodes.add(a2 = new Node("a2")); |
| nodes.add(a3 = new Node("a3")); |
| nodes.add(a4 = new Node("a4")); |
| nodes.add(b1 = new Node("b1")); |
| nodes.add(b2 = new Node("b2")); |
| nodes.add(b3 = new Node("b3")); |
| nodes.add(b4 = new Node("b4")); |
| nodes.add(b5 = new Node("b5")); |
| nodes.add(b6 = new Node("b6")); |
| nodes.add(c1 = new Node("c1")); |
| nodes.add(c2 = new Node("c2")); |
| nodes.add(c3 = new Node("c3")); |
| nodes.add(c4 = new Node("c4")); |
| |
| nodes.add(bottom1 = new Node("Bottom 1")); |
| bottom1.width = 400; |
| |
| nodes.add(bottom2 = new Node("Bottom 2")); |
| bottom2.width = 400; |
| |
| edges.add(new Edge(top1, a1)); |
| edges.add(new Edge(top2, a4)); |
| edges.add(new Edge(a1, b1)); |
| edges.add(new Edge(a2, b1)); |
| edges.add(new Edge(a2, b3)); |
| edges.add(new Edge(a3, b3)); |
| edges.add(new Edge(a3, b5)); |
| edges.add(new Edge(a4, b5)); |
| edges.add(new Edge(a4, b6)); |
| edges.add(new Edge(b1, c1)); |
| edges.add(new Edge(b2, c1)); |
| edges.add(new Edge(b2, c2)); |
| edges.add(new Edge(b4, c2)); |
| edges.add(new Edge(b4, c3)); |
| edges.add(new Edge(b6, c3)); |
| edges.add(new Edge(b6, c4)); |
| edges.add(new Edge(c1, bottom1)); |
| edges.add(new Edge(c4, bottom2)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| |
| |
| } |
| |
| public static DirectedGraph fourLevelBinaryTree() { |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| Node row[], firstRow[]; |
| firstRow = new Node[2]; |
| firstRow[1] = new Node("root"); |
| addNodes(nodes, firstRow); |
| |
| row = joinRows(nodes, edges, firstRow, new int[] {1,1, 1, 2}); |
| |
| row = joinRows(nodes, edges, row, new int[] {1,1,1,2,2,3,2,4}); |
| |
| row = joinRows(nodes, edges, row, new int[] {1,1,1,2,2,3,2,4,3,5,3,6,4,7,4,8}); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| |
| return graph; |
| } |
| |
| public static DirectedGraph graph1() { |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| Node row[], firstRow[]; |
| firstRow = new Node[3]; |
| firstRow[1] = new Node("h1"); |
| firstRow[2] = new Node("h2"); |
| addNodes(nodes, firstRow); |
| row = joinRows(nodes, edges, firstRow, new int[] { |
| 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 2, 7, 2, 8, 2, 9, 2, 10 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,2,2,2,3,3,1,4,4,5,5,6,6,7,7,8,8,9,9,9,10,10,11 |
| }); |
| |
| //Row 3->4 |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,1,2,2,3,2,6,3,6,4,4,5,5,6,7,7,6,8,8,9,6,10,9,10,10,11,11 |
| }); |
| |
| |
| // Row 4->5 |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,1,2,1,3,2,3,3,4,4,5,5,6,7,3,8,7,9,8,10,9,10,10,11,11 |
| }); |
| // Row 5->6 |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,2,2,4,3,5,4,6,5,7,6,8,7,9,7,10,7,11,7 |
| }); |
| // Row 6->7 |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,2,2,3,4,4,4,5,3,6,4,7,4,7,5 |
| }); |
| // Row 7->8 |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,2,2,1,3,2,4,2,4,3,5,4 |
| }); |
| |
| // Row 8->9 |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,2,1,3,1,4,1 |
| }); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| |
| return graph; |
| } |
| |
| public static DirectedGraph graph2() { |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| Node row[], firstRow[]; |
| firstRow = new Node[5]; |
| firstRow[1] = new Node("h1"); |
| firstRow[2] = new Node("h2"); |
| firstRow[3] = new Node("h3"); |
| firstRow[4] = new Node("h4"); |
| firstRow[1].width = firstRow[2].width = firstRow[3].width = firstRow[4].width = 160; |
| addNodes(nodes, firstRow); |
| row = joinRows(nodes, edges, firstRow, new int[] { |
| 1,1, |
| 1,2, |
| 2,2, |
| 2,3, |
| 3,3, |
| 3,4, |
| 4,4, |
| 4,5 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1, |
| 3,3, |
| 5,2 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1, |
| 2,2 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1, |
| 1,2, |
| 2,2, |
| 2,1 |
| }); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| |
| return graph; |
| } |
| |
| public static DirectedGraph graph3() { |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| Node row[], firstRow[]; |
| firstRow = new Node[4]; |
| firstRow[1] = new Node("h1"); |
| firstRow[2] = new Node("h2"); |
| firstRow[3] = new Node("h3"); |
| firstRow[1].width = firstRow[2].width = firstRow[3].width = 120; |
| addNodes(nodes, firstRow); |
| row = joinRows(nodes, edges, firstRow, new int[] { |
| 1,1,1,2, |
| 1,3,2,3, |
| 2,4,3,3, |
| 3,4 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,3,4, |
| 2,1,2,3, |
| 3,2,4,4 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,1,2, |
| 2,1,2,4, |
| 3,3,3,4, |
| 4,3,4,5 |
| }); |
| |
| row = joinRows(nodes, edges, row, new int[] { |
| 1,1,2,2, |
| 4,4,5,5, |
| 1,2,4,3, |
| 5,4 |
| }); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| |
| return graph; |
| } |
| |
| |
| /** |
| * @param nodes |
| * @param edges |
| * @param firstRow |
| * @param is |
| * @return |
| */ |
| private static Node[] joinRows(NodeList nodes, EdgeList edges, Node[] firstRow, int[] conns) { |
| shuffleConnections(conns); |
| Node secondRow[] = new Node[20]; |
| Node head, tail; |
| for (int i = 0; i < conns.length; i += 2) { |
| head = firstRow[conns[i]]; |
| tail = secondRow[conns[i+1]]; |
| if (tail == null) { |
| tail = secondRow[conns[i+1]] = new Node("node" + conns[i+1]); |
| tail.width = 78; |
| } |
| edges.add(new Edge(head, tail)); |
| } |
| addNodes(nodes, secondRow); |
| return secondRow; |
| } |
| |
| /** |
| * @param conns |
| */ |
| private static void shuffleConnections(int[] conns) { |
| for (int i=0; i<conns.length; i+= 2){ |
| int swap = (int)(rand.nextFloat()* conns.length) % conns.length/2; |
| swap *= 2; |
| int temp = conns[i]; |
| conns[i] = conns[swap]; |
| conns[swap] = temp; |
| |
| temp = conns[i+1]; |
| conns[i+1] = conns[swap+1]; |
| conns[swap+1] = temp; |
| } |
| } |
| |
| public static DirectedGraph simpleGraph() { |
| Node a,b,c,d,e,f,g,h,i,x; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(a = new Node("node a")); |
| nodes.add(e = new Node("node e")); |
| nodes.add(b = new Node("node b")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(x = new Node("node X")); |
| nodes.add(f = new Node("node f")); |
| nodes.add(g = new Node("node g")); |
| nodes.add(h = new Node("node h")); |
| nodes.add(i = new Node("node i")); |
| // nodes.add(j = new Node("node j")); |
| |
| edges.add(new Edge(a, i)); |
| edges.add(new Edge(i, g)); |
| edges.add(new Edge(i, h)); |
| edges.add(new Edge(c, i)); |
| |
| |
| edges.add(new Edge(a, b)); |
| edges.add(new Edge(b, c)); |
| edges.add(new Edge(c, d)); |
| edges.add(new Edge(d, x)); |
| edges.add(new Edge(x, e)); |
| edges.add(new Edge(a, f)); |
| // f.incoming.getEdge(0).weight = 4; |
| edges.add(new Edge(f, g)); |
| edges.add(new Edge(f, h)); |
| edges.add(new Edge(g, e)); |
| edges.add(new Edge(h, e)); |
| |
| |
| edges.add(new Edge(b, g)); |
| edges.add(new Edge(f, d)); |
| // edges.add(new Edge(c, h)); //This will force h onto the rank with d |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph test1() { |
| Node a,b,c,d,e,f,g; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(a = new Node("node a")); |
| nodes.add(b = new Node("node b")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(e = new Node("node e")); |
| nodes.add(f = new Node("node f")); |
| nodes.add(g = new Node("node g")); |
| |
| edges.add(new Edge(a, d)); |
| edges.add(new Edge(b, d)); |
| edges.add(new Edge(c, d)); |
| edges.add(new Edge(d, e)); |
| edges.add(new Edge(d, f)); |
| edges.add(new Edge(d, g)); |
| edges.add(new Edge(c, g)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph test2() { |
| Node a,b,c,d,e,f,g,h,i,j,k,l; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(a = new Node("node a")); |
| nodes.add(b = new Node("node b")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(e = new Node("node e")); |
| nodes.add(f = new Node("node f")); |
| // nodes.add(g = new Node("node g")); |
| // nodes.add(h = new Node("node h")); |
| // nodes.add(i = new Node("node i")); |
| // nodes.add(j = new Node("node j")); |
| // nodes.add(k = new Node("node k")); |
| // nodes.add(l = new Node("node l")); |
| |
| edges.add(new Edge(a, b)); |
| edges.add(new Edge(a, c)); |
| edges.add(new Edge(d, b)); |
| |
| edges.add(new Edge(a, f)); |
| edges.add(new Edge(e, b)); |
| |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph test3() { |
| Node a,b,c,d; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(a = new Node("node a")); |
| nodes.add(b = new Node("node b")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| |
| a.width = 80; |
| d.width = 75; |
| |
| edges.add(new Edge(a, b)); |
| edges.add(new Edge(a, c)); |
| edges.add(new Edge(c, d)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph test4() { |
| Node a; |
| Node b,c,d; |
| Node e,f,g; |
| Node h,i,j; |
| Node k; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(a = new Node("node a")); |
| nodes.add(b = new Node("node b")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(e = new Node("node e")); |
| nodes.add(f = new Node("node f")); |
| nodes.add(g = new Node("node g")); |
| nodes.add(h = new Node("node h")); |
| nodes.add(i = new Node("node i")); |
| nodes.add(j = new Node("node j")); |
| nodes.add(k = new Node("node k")); |
| |
| edges.add(new Edge(a, b)); |
| edges.add(new Edge(a, c)); |
| edges.add(new Edge(a, d)); |
| edges.add(new Edge(b, e)); |
| edges.add(new Edge(c, e)); |
| |
| edges.add(new Edge(d, e)); |
| edges.add(new Edge(d, f)); |
| edges.add(new Edge(d, g)); |
| edges.add(new Edge(e, h)); |
| edges.add(new Edge(f, h)); |
| |
| |
| edges.add(new Edge(g, h)); |
| edges.add(new Edge(g, i)); |
| edges.add(new Edge(g, j)); |
| edges.add(new Edge(h, k)); |
| edges.add(new Edge(i, k)); |
| edges.add(new Edge(j, k)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout().visit(graph); |
| return graph; |
| } |
| |
| public static DirectedGraph tinyGraph() { |
| Node a,b,c,d,e,f,g; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| nodes.add(a = new Node("node a")); |
| nodes.add(b = new Node("node b")); |
| nodes.add(c = new Node("node c")); |
| nodes.add(d = new Node("node d")); |
| nodes.add(e = new Node("node e")); |
| // nodes.add(f = new Node("node f")); |
| nodes.add(g = new Node("node g")); |
| |
| edges.add(new Edge(a, d)); |
| edges.add(new Edge(c, b)); |
| edges.add(new Edge(b, g, 1, 3)); |
| edges.add(new Edge(c, d)); |
| edges.add(new Edge(d, e)); |
| // edges.add(new Edge(d, f)); |
| edges.add(new Edge(d, g)); |
| // edges.add(new Edge(c, g)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| } |
| |
| |
| public static DirectedGraph unstableGraph() { |
| Node a0,b0,c0,a1,b1,c1,a2, b2, c2; |
| NodeList nodes = new NodeList(); |
| EdgeList edges = new EdgeList(); |
| |
| |
| nodes.add(a0 = new Node("node a0")); |
| nodes.add(b0 = new Node("node b0")); |
| nodes.add(c0 = new Node("node c0")); |
| nodes.add(a1 = new Node("node a1")); |
| nodes.add(b1 = new Node("node b1")); |
| nodes.add(c1 = new Node("node c1")); |
| nodes.add(a2 = new Node("node a2")); |
| nodes.add(b2 = new Node("node b2")); |
| nodes.add(c2 = new Node("node c2")); |
| |
| // edges.add(new Edge(ab, a0)); |
| // edges.add(new Edge(ab, b0)); |
| // |
| // edges.add(new Edge(ac, a0)); |
| // edges.add(new Edge(ac, c0)); |
| // |
| // edges.add(new Edge(bc, c0)); |
| // edges.add(new Edge(bc, b0)); |
| |
| edges.add(new Edge(a0, a1, 1, 9)); |
| edges.add(new Edge(a1, a2, 1, 9)); |
| |
| edges.add(new Edge(b0, b1, 1, 9)); |
| edges.add(new Edge(b1, b2, 1, 9)); |
| |
| edges.add(new Edge(c0, c1, 1, 9)); |
| edges.add(new Edge(c1, c2, 1, 9)); |
| |
| edges.add(new Edge(a0, b2)); |
| edges.add(new Edge(b0, c2)); |
| edges.add(new Edge(c0, a2)); |
| |
| DirectedGraph graph = new DirectedGraph(); |
| graph.nodes = nodes; |
| graph.edges = edges; |
| |
| new DirectedGraphLayout() |
| .visit(graph); |
| return graph; |
| |
| } |
| |
| } |