/* * Created on Feb 25, 2006 * * Copyright (c) 2005 Peter Johan Salomonsen (http://www.petersalomonsen.com) * * http://www.frinika.com * * This file is part of Frinika. * * Frinika is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * Frinika is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with Frinika; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package com.frinika.sequencer.gui.menu; import java.awt.Toolkit; import java.awt.event.KeyEvent; import javax.swing.Icon; import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.KeyStroke; import com.frinika.project.ProjectContainer; import com.frinika.project.gui.ProjectFrame; import static com.frinika.localization.CurrentLocale.getMessage; /** * Standard menu items for use in MultiEvent editors such as PianoRoll or * EventList * * @author Peter Johan Salomonsen */ public class CutPasteMenu extends JMenu { private static final long serialVersionUID = 1L; JMenuItem undoMenuItem = new JMenuItem(); JMenuItem redoMenuItem = new JMenuItem(); JMenuItem cutMenuItem; JMenuItem copyMenuItem; JMenuItem pasteMenuItem; JMenuItem deleteMenuItem; public static Icon getIconResource(String name) { return new javax.swing.ImageIcon(ProjectFrame.class.getResource("/icons/" + name)); } public CutPasteMenu(final ProjectContainer project) { setText(getMessage("project.menu.edit")); setMnemonic(KeyEvent.VK_E); JMenuItem item; add(item=project.getEditHistoryContainer().getUndoMenuItem()); item.setIcon(getIconResource("undo.gif")); add(item=project.getEditHistoryContainer().getRedoMenuItem()); item.setIcon(getIconResource("redo.gif")); addSeparator(); cutMenuItem = new JMenuItem(new CutAction(project)); cutMenuItem.setIcon(getIconResource("cut.gif")); cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); add(cutMenuItem); copyMenuItem = new JMenuItem(new CopyAction(project)); copyMenuItem.setIcon(getIconResource("copy.gif")); copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); add(copyMenuItem); pasteMenuItem = new JMenuItem(new PasteAction(project)); pasteMenuItem.setIcon(getIconResource("paste.gif")); pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())); add(pasteMenuItem); addSeparator(); deleteMenuItem = new JMenuItem(new DeleteAction(project)); deleteMenuItem.setIcon(getIconResource("delete.gif")); deleteMenuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_DELETE, 0)); add(deleteMenuItem); } /** * * @return Returns deleteMenuItem */ public JMenuItem getDeleteMenuItem() { return deleteMenuItem; } /** * @return Returns the copyMenuItem. */ public JMenuItem getCopyMenuItem() { return copyMenuItem; } /** * @return Returns the cutMenuItem. */ public JMenuItem getCutMenuItem() { return cutMenuItem; } /** * @return Returns the pasteMenuItem. */ public JMenuItem getPasteMenuItem() { return pasteMenuItem; } /** * * Keyboard events not to be handled by the table component - since they are * menu accelerators * * @param ks * @return */ public static boolean isAccelerator(KeyStroke ks) { return (ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_X, Toolkit .getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_UP, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_V, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask())) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F4, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F6, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F7, 0)) || ks.equals(KeyStroke.getKeyStroke(KeyEvent.VK_F8, 0)) || ks .equals(KeyStroke.getKeyStroke(KeyEvent.VK_F9, 0)) ); } }