package edu.brown.oltpgenerator.gui; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.KeyStroke; import edu.brown.gui.AbstractMenuHandler; public class MenuHandler extends AbstractMenuHandler { // ---------------------------------------------- // MENU OPTIONS // ---------------------------------------------- public static enum MenuOptions { QUIT, HELP, }; private GuiMain m_viewer; public MenuHandler(GuiMain viewer) { m_viewer = viewer; installMenu(); } private void installMenu() { JMenu menu; JMenuItem menuItem; // // File Menu // menu = new JMenu("File"); menu.getPopupMenu().setLightWeightPopupEnabled(false); menu.setMnemonic(KeyEvent.VK_F); menu.getAccessibleContext().setAccessibleDescription("File Menu"); m_viewer.addMenu(menu); menu.addSeparator(); menuItem = new JMenuItem("Quit", KeyEvent.VK_Q); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, ActionEvent.CTRL_MASK)); menuItem.getAccessibleContext() .setAccessibleDescription("Quit Program"); menuItem.addActionListener(this); menuItem.putClientProperty(MenuHandler.MENU_ID, MenuOptions.QUIT); menu.add(menuItem); // // Help Menu // menu = new JMenu("Help"); menu.getPopupMenu().setLightWeightPopupEnabled(false); menu.setMnemonic(KeyEvent.VK_H); menu.getAccessibleContext().setAccessibleDescription("Help Menu"); m_viewer.addMenu(menu); menu.addSeparator(); menuItem = new JMenuItem("About", KeyEvent.VK_A); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK)); menuItem.getAccessibleContext().setAccessibleDescription( "About this Program"); menuItem.addActionListener(this); menuItem.putClientProperty(MenuHandler.MENU_ID, MenuOptions.HELP); menu.add(menuItem); } @Override public void actionPerformed(ActionEvent e) { JMenuItem source = (JMenuItem) (e.getSource()); // // Process the event // MenuOptions opt = MenuOptions.valueOf(source.getClientProperty(MENU_ID) .toString()); switch (opt) { // -------------------------------------------------------- // QUIT // -------------------------------------------------------- case QUIT: { m_viewer.quit(); break; } // -------------------------------------------------------- // HELP // -------------------------------------------------------- case HELP: { m_viewer.showAboutDialog("About", "Author: Zhe Zhang. Email: zz.natit@gmail.com"); break; } // -------------------------------------------------------- // UNKNOWN // -------------------------------------------------------- default: System.err.println("Invalid Menu Action: " + source.getName()); } // SWITCH } }