use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class OverrideImplementUtil method registerHandlerForComplementaryAction.
private static void registerHandlerForComplementaryAction(final Project project, final Editor editor, final PsiElement aClass, final boolean toImplement, final MemberChooser<PsiMethodMember> chooser) {
final JComponent preferredFocusedComponent = chooser.getPreferredFocusedComponent();
final Keymap keymap = KeymapManager.getInstance().getActiveKeymap();
@NonNls final String s = toImplement ? "OverrideMethods" : "ImplementMethods";
final Shortcut[] shortcuts = keymap.getShortcuts(s);
if (shortcuts.length > 0 && shortcuts[0] instanceof KeyboardShortcut) {
preferredFocusedComponent.getInputMap().put(((KeyboardShortcut) shortcuts[0]).getFirstKeyStroke(), s);
preferredFocusedComponent.getActionMap().put(s, new AbstractAction() {
@Override
public void actionPerformed(final ActionEvent e) {
chooser.close(DialogWrapper.CANCEL_EXIT_CODE);
// invoke later in order to close previous modal dialog
TransactionGuard.getInstance().submitTransactionLater(project, () -> {
CodeInsightActionHandler handler = toImplement ? new OverrideMethodsHandler() : new ImplementMethodsHandler();
handler.invoke(project, editor, aClass.getContainingFile());
});
}
});
}
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class ActionManagerImpl method processMouseShortcutNode.
private void processMouseShortcutNode(Element element, String actionId, PluginId pluginId) {
String keystrokeString = element.getAttributeValue(KEYSTROKE_ATTR_NAME);
if (keystrokeString == null || keystrokeString.trim().isEmpty()) {
reportActionError(pluginId, "\"keystroke\" attribute must be specified for action with id=" + actionId);
return;
}
MouseShortcut shortcut;
try {
shortcut = KeymapUtil.parseMouseShortcut(keystrokeString);
} catch (Exception ex) {
reportActionError(pluginId, "\"keystroke\" attribute has invalid value for action with id=" + actionId);
return;
}
String keymapName = element.getAttributeValue(KEYMAP_ATTR_NAME);
if (keymapName == null || keymapName.isEmpty()) {
reportActionError(pluginId, "attribute \"keymap\" should be defined");
return;
}
Keymap keymap = myKeymapManager.getKeymap(keymapName);
if (keymap == null) {
reportActionError(pluginId, "keymap \"" + keymapName + "\" not found");
return;
}
processRemoveAndReplace(element, actionId, keymap, shortcut);
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class FileEditorManagerImpl method isOpenInNewWindow.
private static boolean isOpenInNewWindow() {
AWTEvent event = IdeEventQueue.getInstance().getTrueCurrentEvent();
// Shift was used while clicking
if (event instanceof MouseEvent && ((MouseEvent) event).isShiftDown() && (event.getID() == MouseEvent.MOUSE_CLICKED || event.getID() == MouseEvent.MOUSE_PRESSED || event.getID() == MouseEvent.MOUSE_RELEASED)) {
return true;
}
if (event instanceof KeyEvent) {
KeyEvent ke = (KeyEvent) event;
Keymap keymap = KeymapManager.getInstance().getActiveKeymap();
String[] ids = keymap.getActionIds(KeyStroke.getKeyStroke(ke.getKeyCode(), ke.getModifiers()));
return Arrays.asList(ids).contains("OpenElementInNewWindow");
}
return false;
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class EditorMultiCaretTest method doWithAltClickShortcut.
private static void doWithAltClickShortcut(ThrowableRunnable runnable) throws Throwable {
Keymap keymap = KeymapManager.getInstance().getActiveKeymap();
MouseShortcut shortcut = new MouseShortcut(1, InputEvent.ALT_DOWN_MASK, 1);
try {
keymap.addShortcut(IdeActions.ACTION_EDITOR_ADD_OR_REMOVE_CARET, shortcut);
runnable.run();
} finally {
keymap.removeShortcut(IdeActions.ACTION_EDITOR_ADD_OR_REMOVE_CARET, shortcut);
}
}
use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.
the class ActionMacroConfigurationPanel method apply.
public void apply() {
if (myRenamingList != null) {
for (Couple<String> pair : myRenamingList) {
Keymap[] allKeymaps = KeymapManagerEx.getInstanceEx().getAllKeymaps();
for (Keymap keymap : allKeymaps) {
keymap.removeAllActionShortcuts(ActionMacro.MACRO_ACTION_PREFIX + pair.getSecond());
for (Shortcut shortcut : keymap.getShortcuts(ActionMacro.MACRO_ACTION_PREFIX + pair.getFirst())) {
keymap.addShortcut(ActionMacro.MACRO_ACTION_PREFIX + pair.getSecond(), shortcut);
}
keymap.removeAllActionShortcuts(ActionMacro.MACRO_ACTION_PREFIX + pair.getFirst());
}
}
}
final ActionMacroManager manager = ActionMacroManager.getInstance();
ActionMacro[] macros = manager.getAllMacros();
HashSet<String> removedIds = new HashSet<>();
for (ActionMacro macro1 : macros) {
removedIds.add(macro1.getActionId());
}
manager.removeAllMacros();
final Enumeration newMacros = myMacrosModel.elements();
while (newMacros.hasMoreElements()) {
ActionMacro macro = (ActionMacro) newMacros.nextElement();
manager.addMacro(macro);
removedIds.remove(macro.getActionId());
}
manager.registerActions();
for (String id : removedIds) {
Keymap[] allKeymaps = KeymapManagerEx.getInstanceEx().getAllKeymaps();
for (Keymap keymap : allKeymaps) {
keymap.removeAllActionShortcuts(id);
}
}
}
Aggregations