1 21 22 package org.armedbear.j; 23 24 import javax.swing.JMenu ; 25 import javax.swing.KeyStroke ; 26 27 public final class Menu extends JMenu implements Constants 28 { 29 public Menu(String s) 30 { 31 super(s); 32 } 33 34 public Menu(String s, char mnemonic) 35 { 36 super(s); 37 if (Editor.preferences().getBooleanProperty(Property.USE_MENU_MNEMONICS)) 38 setMnemonic(mnemonic); 39 addMenuListener(MenuBar.getListener()); 40 } 41 42 public void setPopupMenuVisible(boolean b) 43 { 44 if (b) { 45 final Editor editor = Editor.currentEditor(); 46 editor.getMode().populateMenu(editor, this); 47 } 48 super.setPopupMenuVisible(b); 49 if (!b) 50 removeAll(); 51 } 52 53 public MenuItem add(Editor editor, String label, char mnemonic, 54 String command, boolean enabled) 55 { 56 Object [] values = editor.getKeyMapping(command); 57 Debug.assertTrue(values != null); 58 Debug.assertTrue(values.length == 2); 59 KeyMapping mapping = (KeyMapping) values[0]; 60 String keyText = mapping != null ? mapping.getKeyText() : ""; 61 if (keyText.length() == 3) { 62 if (keyText.charAt(0) == '\'' && keyText.charAt(2) == '\'') 63 keyText = keyText.substring(1, 2).toUpperCase(); } 65 MenuItem menuItem = new MenuItem(label, keyText); 66 if (mnemonic != '\0') 67 menuItem.setMnemonic(mnemonic); 68 menuItem.setActionCommand(command); 69 menuItem.addActionListener(editor.getDispatcher()); 70 if (!enabled) 71 menuItem.setEnabled(false); 72 add(menuItem); 73 return menuItem; 74 } 75 76 public MenuItem add(Editor editor, String label, char mnemonic, 77 String command) 78 { 79 return add(editor, label, mnemonic, command, true); 80 } 81 } 82 | Popular Tags |