1090 |
1090 |
1091 // create a File menu |
1091 // create a File menu |
1092 JMenu menu = new JMenu(); |
1092 JMenu menu = new JMenu(); |
1093 configureButton(menu, "File"); |
1093 configureButton(menu, "File"); |
1094 ActionListener actionListener = new FileMenuListener(tool, this); |
1094 ActionListener actionListener = new FileMenuListener(tool, this); |
1095 addMenuItem(menu, NEW_POLICY_FILE, actionListener); |
1095 addMenuItem(menu, NEW_POLICY_FILE, actionListener, "N"); |
1096 addMenuItem(menu, OPEN_POLICY_FILE, actionListener); |
1096 addMenuItem(menu, OPEN_POLICY_FILE, actionListener, "O"); |
1097 addMenuItem(menu, SAVE_POLICY_FILE, actionListener); |
1097 addMenuItem(menu, SAVE_POLICY_FILE, actionListener, "S"); |
1098 addMenuItem(menu, SAVE_AS_POLICY_FILE, actionListener); |
1098 addMenuItem(menu, SAVE_AS_POLICY_FILE, actionListener, null); |
1099 addMenuItem(menu, VIEW_WARNINGS, actionListener); |
1099 addMenuItem(menu, VIEW_WARNINGS, actionListener, null); |
1100 addMenuItem(menu, QUIT, actionListener); |
1100 addMenuItem(menu, QUIT, actionListener, null); |
1101 menuBar.add(menu); |
1101 menuBar.add(menu); |
1102 |
1102 |
1103 // create a KeyStore menu |
1103 // create a KeyStore menu |
1104 menu = new JMenu(); |
1104 menu = new JMenu(); |
1105 configureButton(menu, "KeyStore"); |
1105 configureButton(menu, "KeyStore"); |
1106 actionListener = new MainWindowListener(tool, this); |
1106 actionListener = new MainWindowListener(tool, this); |
1107 addMenuItem(menu, EDIT_KEYSTORE, actionListener); |
1107 addMenuItem(menu, EDIT_KEYSTORE, actionListener, null); |
1108 menuBar.add(menu); |
1108 menuBar.add(menu); |
1109 setJMenuBar(menuBar); |
1109 setJMenuBar(menuBar); |
1110 |
1110 |
1111 // Create some space around components |
1111 // Create some space around components |
1112 ((JPanel)getContentPane()).setBorder(new EmptyBorder(6, 6, 6, 6)); |
1112 ((JPanel)getContentPane()).setBorder(new EmptyBorder(6, 6, 6, 6)); |
1218 |
1218 |
1219 |
1219 |
1220 // Platform specific modifier (control / command). |
1220 // Platform specific modifier (control / command). |
1221 private int shortCutModifier = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); |
1221 private int shortCutModifier = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(); |
1222 |
1222 |
1223 private void addMenuItem(JMenu menu, String key, ActionListener actionListener) { |
1223 private void addMenuItem(JMenu menu, String key, ActionListener actionListener, String accelerator) { |
1224 JMenuItem menuItem = new JMenuItem(); |
1224 JMenuItem menuItem = new JMenuItem(); |
1225 configureButton(menuItem, key); |
1225 configureButton(menuItem, key); |
1226 |
1226 |
1227 if (PolicyTool.rb.containsKey(key + ".accelerator")) { |
1227 if (PolicyTool.rb.containsKey(key + ".accelerator")) { |
1228 String accelerator = PolicyTool.getMessage(key + ".accelerator"); |
1228 // Accelerator from resources takes precedence |
1229 if (accelerator != null && !accelerator.isEmpty()) { |
1229 accelerator = PolicyTool.getMessage(key + ".accelerator"); |
1230 KeyStroke keyStroke; |
1230 } |
1231 if (accelerator.matches("^control .$")) { |
1231 |
1232 // Map "control" key to "command" on MacOS |
1232 if (accelerator != null && !accelerator.isEmpty()) { |
1233 keyStroke = KeyStroke.getKeyStroke(KeyEvent.getExtendedKeyCodeForChar(accelerator.charAt(8)), |
1233 KeyStroke keyStroke; |
1234 shortCutModifier); |
1234 if (accelerator.length() == 1) { |
1235 } else { |
1235 keyStroke = KeyStroke.getKeyStroke(KeyEvent.getExtendedKeyCodeForChar(accelerator.charAt(0)), |
1236 keyStroke = KeyStroke.getKeyStroke(accelerator); |
1236 shortCutModifier); |
1237 } |
1237 } else { |
1238 menuItem.setAccelerator(keyStroke); |
1238 keyStroke = KeyStroke.getKeyStroke(accelerator); |
1239 } |
1239 } |
|
1240 menuItem.setAccelerator(keyStroke); |
1240 } |
1241 } |
1241 |
1242 |
1242 menuItem.addActionListener(actionListener); |
1243 menuItem.addActionListener(actionListener); |
1243 menu.add(menuItem); |
1244 menu.add(menuItem); |
1244 } |
1245 } |