France
Joined: Nov 7, 2005
Post Count: 9141
Status:
Offline
Re: How to add a shortcut key to my plugin menu item?
You can add shortcut by binding an instance of KeyStroke with an action that will execute your plugin. The good place to program this should be in the method getActions of your plug-in :
public PluginAction [] getActions() { final PluginAction pluginAction = new PluginActionClass(...);
// Create shortcut once Sweet Home 3D window is created SwingUtilities.invokeLater(new Runnable() { public void run() { // KeyStroke for shortcut Ctrl+Alt+Shift+C (cmd+alt+shift+C under Mac OS X) KeyStroke cmdOrCtrlAltShiftC = KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() | KeyEvent.ALT_DOWN_MASK | KeyEvent.SHIFT_DOWN_MASK); // Bind shortcut with the key "MY_KEY" JComponent homePane = (JComponent)getHomeController().getView(); String actionKey = "MY_KEY"; homePane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW). put(cmdOrCtrlAltShiftC, actionKey); // Bind the key "MY_KEY" with an action that will execute the plug-in homePane.getActionMap().put(actionKey, new AbstractAction() { public void actionPerformed(ActionEvent e) { pluginAction.execute(); } });
} });
return new PluginAction [] {pluginAction}; }
If you want that the shortcut appears beside the menu item of the plug-in, you'll have to find the menu item in the menu bar returned by
with getMenu then getMenuComponent methods. Once you found the right menu item, just call its setAccelerator method.
----------------------------------------
Emmanuel Puybaret, Sweet Home 3D developer