/* * TreeMenuFactory.java * * Copyright (C) 2006-2014 Andrew Rambaut * * This program 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. * * This program 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 this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package figtree.application.menus; import jam.framework.*; import jam.mac.Utils; import javax.swing.*; import java.awt.event.KeyEvent; /** * @author Andrew Rambaut * @version $Id$ * * $HeadURL$ * * $LastChangedBy$ * $LastChangedDate$ * $LastChangedRevision$ */ public class TreeMenuFactory implements MenuFactory { public String getMenuName() { return "Tree"; } public void populateMenu(JMenu menu, AbstractFrame frame) { JMenuItem item; if (frame instanceof TreeMenuHandler) { item = new JMenuItem(((TreeMenuHandler)frame).getNextTreeAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getPreviousTreeAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, MenuBarFactory.MENU_MASK)); menu.add(item); menu.addSeparator(); item = new JMenuItem(((TreeMenuHandler)frame).getCartoonAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getCollapseAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getClearCollapsedAction()); menu.add(item); menu.addSeparator(); item = new JMenuItem(((TreeMenuHandler)frame).getRerootAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getMidpointRootAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getClearRootingAction()); menu.add(item); menu.addSeparator(); item = new JMenuItem(((TreeMenuHandler)frame).getRotateAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getIncreasingNodeOrderAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getDecreasingNodeOrderAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getClearRotationsAction()); menu.add(item); menu.addSeparator(); item = new JMenuItem(((TreeMenuHandler)frame).getDefineAnnotationsAction()); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getAnnotateAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_QUOTE, MenuBarFactory.MENU_MASK)); menu.add(item); // item = new JMenuItem(((TreeMenuHandler)frame).getCopyAnnotationsAction()); // menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getAnnotateNodesFromTipsAction()); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getAnnotateTipsFromNodesAction()); menu.add(item); // item = new JMenuItem(((TreeMenuHandler)frame).getClearAnnotationsAction()); // menu.add(item); menu.addSeparator(); item = new JMenuItem(((TreeMenuHandler)frame).getColourAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getClearColouringAction()); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getHilightAction()); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(((TreeMenuHandler)frame).getClearHilightingAction()); menu.add(item); } else if (Utils.isMacOSX()) { // make a false menu (only required for Mac OS X) item = new JMenuItem(TreeMenuHandler.NEXT_TREE); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, MenuBarFactory.MENU_MASK)); item.setEnabled(false); menu.add(item); item = new JMenuItem(TreeMenuHandler.PREVIOUS_TREE); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, MenuBarFactory.MENU_MASK)); item.setEnabled(false); menu.add(item); menu.addSeparator(); item = new JMenuItem(TreeMenuHandler.CARTOON_NODE); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.COLLAPSE_NODE); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.CLEAR_COLLAPSED); item.setEnabled(false); menu.add(item); menu.addSeparator(); item = new JMenuItem(TreeMenuHandler.ROOT_ON_BRANCH); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.MIDPOINT_ROOT); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.CLEAR_ROOTING); item.setEnabled(false); menu.add(item); menu.addSeparator(); item = new JMenuItem(TreeMenuHandler.ROTATE_NODE); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.INCREASING_NODE_ORDER); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.DECREASING_NODE_ORDER); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_D, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.CLEAR_ROTATIONS); item.setEnabled(false); menu.add(item); menu.addSeparator(); item = new JMenuItem(TreeMenuHandler.DEFINE_ANNOTATIONS); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_QUOTE, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.ANNOTATE); item.setEnabled(false); menu.add(item); item = new JMenuItem(TreeMenuHandler.ANNOTATE_NODES_FROM_TIPS); item.setEnabled(false); menu.add(item); item = new JMenuItem(TreeMenuHandler.ANNOTATE_TIPS_FROM_NODES); item.setEnabled(false); menu.add(item); // item = new JMenuItem(TreeMenuHandler.COPY_ANNOTATION_VALUES); // item.setEnabled(false); // menu.add(item); // item = new JMenuItem(TreeMenuHandler.CLEAR_ANNOTATIONS); // item.setEnabled(false); // menu.add(item); menu.addSeparator(); item = new JMenuItem(TreeMenuHandler.COLOUR); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.CLEAR_COLOURING); item.setEnabled(false); menu.add(item); item = new JMenuItem(TreeMenuHandler.HILIGHT); item.setEnabled(false); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, MenuBarFactory.MENU_MASK)); menu.add(item); item = new JMenuItem(TreeMenuHandler.CLEAR_HILIGHTING); item.setEnabled(false); menu.add(item); } } public int getPreferredAlignment() { return LEFT; } }