Hi,
I'm wondering if there would be a way to add a shortcut key to my customized plugin menu item.
thanks,
jaff
How to add a shortcut key to my plugin menu item?
This topic has been viewed 8854 times and has 2 replies
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 :
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 [font=courier new]getMenu[/font] then [font=courier new]getMenuComponent[/font] methods. Once you found the right menu item, just call its setAccelerator method.
Code: Select all
public PluginAction [] getActions() {
final PluginAction pluginAction = new [i]PluginActionClass[/i](...);
// 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};
}
Code: Select all
((JFrame)SwingUtilities.getWindowAncestor((JComponent)getHomeController().getView())).
getJMenuBar();Emmanuel Puybaret, Sweet Home 3D creator
Re: How to add a shortcut key to my plugin menu item?
I very much appreciate your help, Ennanuel. It works well. Thanks a lot.
Jaff
Jaff
Who is online
Users browsing this forum: No registered users and 2 guests