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; }