/* * $Id: GraphEdXMenuBar.java,v 1.5 2005/12/07 19:44:09 gaudenz Exp $ * Copyright (c) 2001-2005, Gaudenz Alder * * All rights reserved. * * This file is licensed under the JGraph software license, a copy of which * will have been provided to you in the file LICENSE at the root of your * installation directory. If you are unable to locate this file please * contact JGraph sales for another copy. */ package com.jgraph.example; import java.awt.event.ActionEvent; import java.awt.geom.Point2D; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.ButtonGroup; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRadioButtonMenuItem; import javax.swing.KeyStroke; /** * A simple menu bar */ public class GraphEdXMenuBar extends JMenuBar { /** * JGraph Factory instance for random new graphs */ protected JGraphGraphFactory graphFactory = null; public GraphEdXMenuBar(final GraphEdX app, JGraphGraphFactory factory) { graphFactory = factory; // Sample data menu JMenu fileMenu = new JMenu("File"); fileMenu.add(new JMenuItem(new AbstractAction("Open") { public void actionPerformed(ActionEvent e) { app.openFile(); } })); fileMenu.add(new JMenuItem(new AbstractAction("Save") { public void actionPerformed(ActionEvent e) { app.saveFile(); } })); fileMenu.addSeparator(); fileMenu.add(new JMenuItem(new AbstractAction("Deserialize") { public void actionPerformed(ActionEvent e) { app.deserializeGraph(); } })); fileMenu.add(new JMenuItem(new AbstractAction("Serialize") { public void actionPerformed(ActionEvent e) { app.serializeGraph(); } })); add(fileMenu); // Sample data menu JMenu sampleMenu = new JMenu("Sample Data"); sampleMenu.add(new JMenuItem(new AbstractAction("Insert Random Tree") { public void actionPerformed(ActionEvent e) { graphFactory.insertGraph(app.getGraph(), JGraphGraphFactory.TREE, app.createCellAttributes(new Point2D.Double(0, 0)), app .createEdgeAttributes()); } })); sampleMenu.add(new JMenuItem(new AbstractAction("Insert Random Graph") { public void actionPerformed(ActionEvent e) { graphFactory.insertGraph(app.getGraph(), JGraphGraphFactory.RANDOM_CONNECTED, app.createCellAttributes(new Point2D.Double(0, 0)), app .createEdgeAttributes()); } })); add(sampleMenu); } /** * helper for creating radio button menu items * * @param group * the <code>ButtonGroup</code> of the item * @param action * the <code>Action</code> associated with the item * @return the menu item */ public JRadioButtonMenuItem createRadioMenuItem(ButtonGroup group, Action action) { JRadioButtonMenuItem menuItem = new JRadioButtonMenuItem(action); menuItem.setAccelerator(KeyStroke.getKeyStroke("ctrl shift " + String.valueOf(action.getValue("shortcut")).substring(0, 1) .toUpperCase())); group.add(menuItem); return menuItem; } }