Search in sources :

Example 11 with Keymap

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());
                });
            }
        });
    }
}
Also used : NonNls(org.jetbrains.annotations.NonNls) CodeInsightActionHandler(com.intellij.codeInsight.CodeInsightActionHandler) ActionEvent(java.awt.event.ActionEvent) KeyboardShortcut(com.intellij.openapi.actionSystem.KeyboardShortcut) Shortcut(com.intellij.openapi.actionSystem.Shortcut) KeyboardShortcut(com.intellij.openapi.actionSystem.KeyboardShortcut) Keymap(com.intellij.openapi.keymap.Keymap)

Example 12 with Keymap

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);
}
Also used : PluginException(com.intellij.diagnostic.PluginException) ProcessCanceledException(com.intellij.openapi.progress.ProcessCanceledException) Keymap(com.intellij.openapi.keymap.Keymap)

Example 13 with Keymap

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;
}
Also used : KeyEvent(java.awt.event.KeyEvent) MouseEvent(java.awt.event.MouseEvent) Keymap(com.intellij.openapi.keymap.Keymap)

Example 14 with Keymap

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);
    }
}
Also used : MouseShortcut(com.intellij.openapi.actionSystem.MouseShortcut) Keymap(com.intellij.openapi.keymap.Keymap)

Example 15 with Keymap

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);
        }
    }
}
Also used : Enumeration(java.util.Enumeration) Shortcut(com.intellij.openapi.actionSystem.Shortcut) Keymap(com.intellij.openapi.keymap.Keymap) HashSet(com.intellij.util.containers.HashSet)

Aggregations

Keymap (com.intellij.openapi.keymap.Keymap)47 Shortcut (com.intellij.openapi.actionSystem.Shortcut)14 KeymapManagerEx (com.intellij.openapi.keymap.ex.KeymapManagerEx)10 NotNull (org.jetbrains.annotations.NotNull)10 KeyboardShortcut (com.intellij.openapi.actionSystem.KeyboardShortcut)7 Nullable (org.jetbrains.annotations.Nullable)7 AnAction (com.intellij.openapi.actionSystem.AnAction)6 KeymapManager (com.intellij.openapi.keymap.KeymapManager)5 ActionManager (com.intellij.openapi.actionSystem.ActionManager)4 MacOSDefaultKeymap (com.intellij.openapi.keymap.impl.MacOSDefaultKeymap)4 Pair (com.intellij.openapi.util.Pair)4 FactoryMap (com.intellij.util.containers.FactoryMap)4 THashMap (gnu.trove.THashMap)4 THashSet (gnu.trove.THashSet)4 DefaultKeymap (com.intellij.openapi.keymap.impl.DefaultKeymap)2 KeymapImpl (com.intellij.openapi.keymap.impl.KeymapImpl)2 KeymapManagerImpl (com.intellij.openapi.keymap.impl.KeymapManagerImpl)2 ToolWindow (com.intellij.openapi.wm.ToolWindow)2 KeyEvent (java.awt.event.KeyEvent)2 NonNls (org.jetbrains.annotations.NonNls)2