public void CenterGraph(int borderSpacing, boolean _repaint) { List<Functionality.Node> ln = myGraph.getNodes(); double xsum = 0; double ysum = 0; for (int i = 0; i < ln.size(); i++) { xsum += layout.getX(ln.get(i)); ysum += layout.getY(ln.get(i)); } double xmean = xsum / ln.size(); double ymean = ysum / ln.size(); double xcoef = (layout_width - borderSpacing * 2) / (double) layout_width; double ycoef = (layout_height - borderSpacing * 2) / (double) layout_height; for (int i = 0; i < ln.size(); i++) { double xnew = layout.getX(ln.get(i)) + (layout_width / 2 - xmean); double ynew = layout.getY(ln.get(i)) + (layout_height / 2 - ymean); layout.setLocation(ln.get(i), xnew, ynew); } for (int i = 0; i < ln.size(); i++) { double xnew = borderSpacing + layout.getX(ln.get(i)) * xcoef; double ynew = borderSpacing + layout.getY(ln.get(i)) * ycoef; layout.setLocation(ln.get(i), xnew, ynew); } if (_repaint == true) vv.repaint(); }
public JComponent actualizeGraph(boolean lockLayout) { // myGraph = g; System.err.println("Location: x = " + vv.getLocation().x + ", y = " + vv.getLocation().y); MultiLayerTransformer mlt = vv.getRenderContext().getMultiLayerTransformer(); Map<Functionality.Node, Point2d> locSet = new HashMap<Functionality.Node, Point2d>(); PickedState<Node> psn = vv.getPickedVertexState(); List<Functionality.Node> ln = DataModule.displayedGraph.getNodes(); for (int i = 0; i < ln.size(); i++) { locSet.put(ln.get(i), new Point2d(layout.getX(ln.get(i)), layout.getY(ln.get(i)))); } init(DataModule.displayedGraph, layout_width, layout_height); drawGraph(); for (int i = 0; i < ln.size(); i++) { layout.setLocation(ln.get(i), locSet.get(ln.get(i)).x, locSet.get(ln.get(i)).y); } PickedState<Node> newPsn = vv.getPickedVertexState(); for (int i = 0; i < ln.size(); i++) { newPsn.pick(ln.get(i), psn.isPicked(ln.get(i))); } if (vdp instanceof VertexDisplayPredicateDistance) { ((VertexDisplayPredicateDistance) vdp).Actualise(); } vv.getRenderContext().setVertexIncludePredicate(vdp); vv.getRenderContext().setEdgeIncludePredicate(eip); vv.setPickedVertexState(newPsn); vv.getRenderContext().setMultiLayerTransformer(mlt); vv.getRenderContext().setVertexFillPaintTransformer(VertexColorTransformer.vctInstance); layout.lock(lockLayout); MyGraphZoomScrollPane graphPane = new MyGraphZoomScrollPane(vv); return graphPane; }