private static void doFRLayout(final Layout graphLayout, SparseGraph<VertexRef, EdgeRef> jungGraph, Dimension size, final int xOffset, final int yOffset) { FRLayout<VertexRef, EdgeRef> layout = new FRLayout<VertexRef, EdgeRef>(jungGraph); layout.setInitializer(initializer(graphLayout, xOffset, yOffset)); layout.setSize(size); while(!layout.done()) { layout.step(); } for(VertexRef v : jungGraph.getVertices()) { graphLayout.setLocation(v, new Point(layout.getX(v)+xOffset, layout.getY(v)+yOffset)); } }
private static void doFRLayout(final Layout graphLayout, SparseGraph<VertexRef, EdgeRef> jungGraph, Dimension size, final int xOffset, final int yOffset) { FRLayout<VertexRef, EdgeRef> layout = new FRLayout<VertexRef, EdgeRef>(jungGraph); layout.setInitializer(initializer(graphLayout, xOffset, yOffset)); layout.setSize(size); while(!layout.done()) { layout.step(); } for(VertexRef v : jungGraph.getVertices()) { graphLayout.setLocation(v, new Point(layout.getX(v)+xOffset, layout.getY(v)+yOffset)); } }
@Override public void updateLayout(final Graph graph) { final Layout graphLayout = graph.getLayout(); SparseGraph<VertexRef, EdgeRef> jungGraph = new SparseGraph<VertexRef, EdgeRef>(); Collection<Vertex> vertices = graph.getDisplayVertices(); for(Vertex v : vertices) { jungGraph.addVertex(v); } Collection<Edge> edges = graph.getDisplayEdges(); for(Edge e : edges) { jungGraph.addEdge(e, e.getSource().getVertex(), e.getTarget().getVertex()); } FRLayout<VertexRef, EdgeRef> layout = new FRLayout<VertexRef, EdgeRef>(jungGraph); // Initialize the vertex positions to the last known positions from the layout Dimension size = selectLayoutSize(graph); layout.setInitializer(initializer(graphLayout, (int)size.getWidth()/2, (int)size.getHeight()/2)); // Resize the graph to accommodate the number of vertices layout.setSize(size); while(!layout.done()) { layout.step(); } // Store the new positions in the layout for(Vertex v : vertices) { graphLayout.setLocation(v, new Point(layout.getX(v) - (size.getWidth()/2), (int)layout.getY(v) - (size.getHeight()/2))); } }
@Override public void updateLayout(final Graph graph) { final Layout graphLayout = graph.getLayout(); SparseGraph<VertexRef, EdgeRef> jungGraph = new SparseGraph<VertexRef, EdgeRef>(); Collection<Vertex> vertices = graph.getDisplayVertices(); for(Vertex v : vertices) { jungGraph.addVertex(v); } Collection<Edge> edges = graph.getDisplayEdges(); for(Edge e : edges) { jungGraph.addEdge(e, e.getSource().getVertex(), e.getTarget().getVertex()); } FRLayout<VertexRef, EdgeRef> layout = new FRLayout<VertexRef, EdgeRef>(jungGraph); // Initialize the vertex positions to the last known positions from the layout Dimension size = selectLayoutSize(graph); layout.setInitializer(initializer(graphLayout, (int)size.getWidth()/2, (int)size.getHeight()/2)); // Resize the graph to accommodate the number of vertices layout.setSize(size); while(!layout.done()) { layout.step(); } // Store the new positions in the layout for(Vertex v : vertices) { graphLayout.setLocation(v, new Point(layout.getX(v) - (size.getWidth()/2), (int)layout.getY(v) - (size.getHeight()/2))); } }