예제 #1
0
  public JComponent drawGraph() {
    // System.out.println("The graph qt"+qt.toString()); // DEBUG
    // ISOMLayout
    layout = new SpringLayoutWeighted(this.qt);
    layout.setSize(new Dimension(layout_width, layout_height));
    // layout.setSize(new Dimension(layout_width, layout_height));

    vv = new MyVisualizationViewer<Functionality.Node, Functionality.Edge>(layout);
    vv.setBackground(Color.WHITE);
    vv.setPreferredSize(new Dimension(layout_width, layout_height));
    vv.setIgnoreRepaint(true);

    // Show vertex and edge labels
    vv.getRenderContext().setVertexLabelTransformer(new DefaultToStringLabeller());
    // BasicVertexLabelRenderer<Functionality.Node, Functionality.Edge> bvlr =  new
    // (BasicVertexLabelRenderer<Functionality.Node,
    // Functionality.Edge>)(vv.getRenderContext().getVertexLabelRenderer());

    BasicRenderer<Functionality.Node, Functionality.Edge> br = new BasicRenderer<Node, Edge>();
    // br.setVertexLabelRenderer(new BasicVertexLabelRenderer<Functionality.Node,
    // Functionality.Edge>(Position.CNTR));

    vv.setRenderer(br);

    // MyVertexLabelRenderer dvlr = new MyVertexLabelRenderer(Color.red);

    // vv.getRenderContext().setVertexLabelRenderer(dvlr);

    // bvlr.setPosition(Position.CNTR);

    // vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller());
    vv.setDoubleBuffered(true);

    // layout = new SpringLayout2<Functionality.Node, Functionality.Edge>(this.qt);
    layout.initialize();

    if (myGraph.GetNumberOfClusters() > 1) {
      InitializeClusterGraphLayout();
    }

    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.step();
    layout.lock(true);
    CenterGraph(10, false);

    // Create a graph mouse and add it to the visualization component
    // DefaultModalGraphMouse gm = new DefaultModalGraphMouse();
    DefaultModalGraphMouse gm = new DefaultModalGraphMouse();
    gm.setMode(ModalGraphMouse.Mode.PICKING);
    vv.addMouseListener(this);
    VertexMouseMenu vMouseMenu = new VertexMouseMenu();
    JPopupMenu vertexMenu = new MyVertexMenu();
    vMouseMenu.setVertexPopup(vertexMenu);
    gm.add(vMouseMenu);

    vv.setGraphMouse(gm);

    setEdgeWeightStrokeFunction();
    vv.getRenderContext()
        .setVertexShapeTransformer(
            new VertexShapeSizeAspect<Functionality.Node, Functionality.Edge>(myGraph));
    vv.getRenderContext().setVertexFillPaintTransformer(VertexColorTransformer.vctInstance);

    MyGraphZoomScrollPane graphPane = new MyGraphZoomScrollPane(vv);

    return graphPane;
  }