/** @param args the command line arguments */ public static void main(String[] args) { JFrame frame = new JFrame("Editing and Mouse Menu Demo"); SparseMultigraph<GraphElements.MyVertex, GraphElements.MyEdge> g = new SparseMultigraph<GraphElements.MyVertex, GraphElements.MyEdge>(); // Layout<V, E>, VisualizationViewer<V,E> // Map<GraphElements.MyVertex,Point2D> vertexLocations = new // HashMap<GraphElements.MyVertex, Point2D>(); Layout<GraphElements.MyVertex, GraphElements.MyEdge> layout = new StaticLayout(g); layout.setSize(new Dimension(300, 300)); VisualizationViewer<GraphElements.MyVertex, GraphElements.MyEdge> vv = new VisualizationViewer<GraphElements.MyVertex, GraphElements.MyEdge>(layout); vv.setPreferredSize(new Dimension(350, 350)); // Show vertex and edge labels vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller()); vv.getRenderContext().setEdgeLabelTransformer(new ToStringLabeller()); // Create a graph mouse and add it to the visualization viewer EditingModalGraphMouse gm = new EditingModalGraphMouse( vv.getRenderContext(), GraphElements.MyVertexFactory.getInstance(), GraphElements.MyEdgeFactory.getInstance()); // Set some defaults for the Edges... GraphElements.MyEdgeFactory.setDefaultCapacity(192.0); GraphElements.MyEdgeFactory.setDefaultWeight(5.0); // Trying out our new popup menu mouse plugin... PopupVertexEdgeMenuMousePlugin myPlugin = new PopupVertexEdgeMenuMousePlugin(); // Add some popup menus for the edges and vertices to our mouse plugin. JPopupMenu edgeMenu = new MyMouseMenus.EdgeMenu(frame); JPopupMenu vertexMenu = new MyMouseMenus.VertexMenu(); myPlugin.setEdgePopup(edgeMenu); myPlugin.setVertexPopup(vertexMenu); gm.remove(gm.getPopupEditingPlugin()); // Removes the existing popup editing plugin gm.add(myPlugin); // Add our new plugin to the mouse vv.setGraphMouse(gm); // JFrame frame = new JFrame("Editing and Mouse Menu Demo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(vv); // Let's add a menu for changing mouse modes JMenuBar menuBar = new JMenuBar(); JMenu modeMenu = gm.getModeMenu(); modeMenu.setText("Mouse Mode"); modeMenu.setIcon(null); // I'm using this in a main menu modeMenu.setPreferredSize(new Dimension(80, 20)); // Change the size so I can see the text menuBar.add(modeMenu); frame.setJMenuBar(menuBar); gm.setMode(ModalGraphMouse.Mode.EDITING); // Start off in editing mode frame.pack(); frame.setVisible(true); }
private void setMouseSettings() { // mouse interaction EditingModalGraphMouse<VertexNode, EdgeLink> gm = new EditingModalGraphMouse<VertexNode, EdgeLink>(getRenderContext(), vFactory, eFactory); // Trying out our new popup menu mouse plugin... PopupMousePlugin<VertexNode, EdgeLink> myPlugin = new PopupMousePlugin<VertexNode, EdgeLink>(); gm.remove(gm.getPopupEditingPlugin()); // Removes the existing popup editing plugin gm.add(myPlugin); // Add our new plugin to the mouse // need an editing mouse that will notify when an edge is potentially created EditingNotifyingMousePlugin<VertexNode, EdgeLink> myEditor = new EditingNotifyingMousePlugin<VertexNode, EdgeLink>(); gm.add(myEditor); setGraphMouse(gm); // menu bar JMenuBar bar = new JMenuBar(); JMenu modeMenu = gm.getModeMenu(); modeMenu.setText("Mouse Mode"); modeMenu.setIcon(null); // I'm using this in a main menu modeMenu.setPreferredSize(new Dimension(200, 20)); // Change the size so I can see the text gm.setMode(ModalGraphMouse.Mode.EDITING); // Start off in editing mode JMenuItem refresh = new JMenuItem("Refresh Screen"); refresh.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent arg0) { stateChanged(null); } }); bar.add(modeMenu); bar.add(refresh); add(bar); }