コード例 #1
0
ファイル: Visualize.java プロジェクト: cehrler/castro
  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;
  }