private static void doOptionsPopup(MouseEvent e, SessionPanel session) { Action action; JPopupMenu j = new JPopupMenu("Macro Options"); action = new AbstractAction( LangTool.getString("popup.delete") + " " + ((JMenuItem) e.getSource()).getText()) { private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { StringBuffer macro = new StringBuffer(((JMenuItem) e.getSource()).getText()); macro.delete(0, LangTool.getString("popup.delete").length() + 1); Macronizer.removeMacroByName(macro.toString()); } }; j.add(action); final SessionPanel ses = session; action = new AbstractAction( LangTool.getString("popup.execute") + " " + ((JMenuItem) e.getSource()).getText()) { private static final long serialVersionUID = 1L; public void actionPerformed(ActionEvent e) { StringBuffer macro = new StringBuffer(((JMenuItem) e.getSource()).getText()); macro.delete(0, LangTool.getString("popup.execute").length() + 1); Macronizer.invoke(macro.toString(), ses); } }; j.add(action); MouseEvent et = SwingUtilities.convertMouseEvent((JMenuItem) e.getSource(), e, session); GUIGraphicsUtils.positionPopup(session, j, et.getX(), et.getY()); }
/** * Create the scripts menu(s) from the vector of macros provided * * @param menu * @param vector * @param start */ private static void createScriptsMenu(JMenu menu, Vector vector, int start) { JPopupMenu jpop = new JPopupMenu(); jpop.add("Delete"); for (int i = start; i < vector.size(); i++) { Object obj = vector.elementAt(i); if (obj instanceof ExecuteScriptAction) { menu.add((ExecuteScriptAction) obj); } else if (obj instanceof Vector) { Vector subvector = (Vector) obj; String name = (String) subvector.elementAt(0); JMenu submenu = new JMenu(name); createScriptsMenu(submenu, subvector, 1); if (submenu.getMenuComponentCount() == 0) { submenu.add(LangTool.getString("popup.noScripts")); } menu.add(submenu); } } }