Search in sources :

Example 46 with Keymap

use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.

the class ActionsWithoutUpdateMethodTest method testActionsWithShortcuts.

public void testActionsWithShortcuts() throws Exception {
    Set<String> ids = new HashSet<>();
    for (String id : ((ActionManagerImpl) ActionManager.getInstance()).getActionIds()) {
        for (Keymap keymap : KeymapManagerEx.getInstanceEx().getAllKeymaps()) {
            if (keymap.getShortcuts(id).length > 0 && !PLATFORM_WIDE_ACTIONS.contains(id)) {
                ids.add(id);
            }
        }
    }
    ActionManager mgr = ActionManager.getInstance();
    ArrayList<AnAction> failed = new ArrayList<>();
    for (String id : ids) {
        AnAction action = mgr.getAction(id);
        if (action == null) {
            System.out.println("Can't find action: " + id);
            continue;
        }
        Method updateMethod = action.getClass().getMethod("update", AnActionEvent.class);
        if (updateMethod.getDeclaringClass() == AnAction.class) {
            failed.add(action);
        }
    }
    for (AnAction action : failed) {
        System.out.println(action + " ID: " + mgr.getId(action) + " Class: " + action.getClass());
    }
    assertEmpty("The following actions have shortcuts, but don't have update() method redefined", failed);
}
Also used : ActionManager(com.intellij.openapi.actionSystem.ActionManager) ArrayList(java.util.ArrayList) ActionManagerImpl(com.intellij.openapi.actionSystem.impl.ActionManagerImpl) Method(java.lang.reflect.Method) AnAction(com.intellij.openapi.actionSystem.AnAction) Keymap(com.intellij.openapi.keymap.Keymap) HashSet(com.intellij.util.containers.HashSet)

Example 47 with Keymap

use of com.intellij.openapi.keymap.Keymap in project intellij-community by JetBrains.

the class MavenShortcutsManagerTest method assignShortcut.

private void assignShortcut(VirtualFile pomFile, String goal, String shortcut) {
    MavenProject mavenProject = myProjectsManager.findProject(pomFile);
    assert mavenProject != null;
    String actionId = myShortcutsManager.getActionId(mavenProject.getPath(), goal);
    assert actionId != null;
    AnAction action = ActionManager.getInstance().getAction(actionId);
    if (action == null) {
        MavenKeymapExtension.getOrRegisterAction(mavenProject, actionId, goal);
    }
    Keymap activeKeymap = KeymapManager.getInstance().getActiveKeymap();
    activeKeymap.addShortcut(actionId, KeyboardShortcut.fromString(shortcut));
}
Also used : MavenProject(org.jetbrains.idea.maven.project.MavenProject) AnAction(com.intellij.openapi.actionSystem.AnAction) Keymap(com.intellij.openapi.keymap.Keymap)

Example 48 with Keymap

use of com.intellij.openapi.keymap.Keymap in project intellij-plugins by StepicOrg.

the class StudyProjectComponent method projectClosed.

@Override
public void projectClosed() {
    if (!StepikProjectManager.isStepikProject(project)) {
        return;
    }
    final ToolWindow toolWindow = ToolWindowManager.getInstance(project).getToolWindow(StudyToolWindowFactory.STUDY_TOOL_WINDOW);
    if (toolWindow != null) {
        toolWindow.getContentManager().removeAllContents(false);
    }
    KeymapManagerEx keymapManager = KeymapManagerEx.getInstanceEx();
    for (Keymap keymap : keymapManager.getAllKeymaps()) {
        List<Pair<String, String>> pairs = deletedShortcuts.get(keymap);
        if (pairs != null && !pairs.isEmpty()) {
            for (Pair<String, String> actionShortcut : pairs) {
                keymap.addShortcut(actionShortcut.first, new KeyboardShortcut(KeyStroke.getKeyStroke(actionShortcut.second), null));
            }
        }
    }
}
Also used : ToolWindow(com.intellij.openapi.wm.ToolWindow) StudyToolWindow(org.stepik.core.ui.StudyToolWindow) KeyboardShortcut(com.intellij.openapi.actionSystem.KeyboardShortcut) KeymapManagerEx(com.intellij.openapi.keymap.ex.KeymapManagerEx) Keymap(com.intellij.openapi.keymap.Keymap) Pair(com.intellij.openapi.util.Pair)

Aggregations

Keymap (com.intellij.openapi.keymap.Keymap)48 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)6 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 NonNls (org.jetbrains.annotations.NonNls)3 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