Example usage for com.intellij.openapi.keymap KeymapGroup addGroup

List of usage examples for com.intellij.openapi.keymap KeymapGroup addGroup

Introduction

In this page you can find the example usage for com.intellij.openapi.keymap KeymapGroup addGroup.

Prototype

void addGroup(KeymapGroup keymapGroup);

Source Link

Usage

From source file:com.intellij.lang.ant.config.impl.AntKeymapExtension.java

License:Apache License

public KeymapGroup createGroup(final Condition<AnAction> filtered, Project project) {
    final Map<AntBuildFile, KeymapGroup> buildFileToGroup = new HashMap<AntBuildFile, KeymapGroup>();
    final KeymapGroup result = KeymapGroupFactory.getInstance().createGroup(
            KeyMapBundle.message("ant.targets.group.title"), TargetAWT.to(ApacheAntIcons.AntGroup));

    final ActionManagerEx actionManager = ActionManagerEx.getInstanceEx();
    final String[] ids = actionManager.getActionIds(
            project != null ? AntConfiguration.getActionIdPrefix(project) : AntConfiguration.ACTION_ID_PREFIX);
    Arrays.sort(ids);/*from  w w  w.  j  a  va  2 s .  c  om*/

    if (project != null) {
        final AntConfiguration antConfiguration = AntConfiguration.getInstance(project);
        ApplicationManager.getApplication().runReadAction(new Runnable() {
            public void run() {
                for (final String id : ids) {
                    if (filtered != null && !filtered.value(actionManager.getActionOrStub(id))) {
                        continue;
                    }
                    final AntBuildFile buildFile = antConfiguration.findBuildFileByActionId(id);
                    if (buildFile != null) {
                        KeymapGroup subGroup = buildFileToGroup.get(buildFile);
                        if (subGroup == null) {
                            subGroup = KeymapGroupFactory.getInstance()
                                    .createGroup(buildFile.getPresentableName());
                            buildFileToGroup.put(buildFile, subGroup);
                            result.addGroup(subGroup);
                        }
                        subGroup.addActionId(id);
                    } else {
                        LOG.info("no buildfile found for actionId=" + id);
                    }
                }
            }
        });
    }

    return result;
}

From source file:org.jetbrains.idea.maven.tasks.MavenKeymapExtension.java

License:Apache License

public KeymapGroup createGroup(Condition<AnAction> condition, Project project) {
    KeymapGroup result = KeymapGroupFactory.getInstance().createGroup(
            TasksBundle.message("maven.tasks.action.group.name"), TargetAWT.to(icons.MavenIcons.PhasesClosed));
    if (project == null)
        return result;

    Comparator<MavenProject> projectComparator = new Comparator<MavenProject>() {
        public int compare(MavenProject o1, MavenProject o2) {
            return o1.getDisplayName().compareToIgnoreCase(o2.getDisplayName());
        }//from w  w w.j  a v a 2s .  c om
    };
    Map<MavenProject, Set<Pair<String, String>>> projectToActionsMapping = new TreeMap<MavenProject, Set<Pair<String, String>>>(
            projectComparator);

    ActionManager actionManager = ActionManager.getInstance();
    for (String eachId : actionManager.getActionIds(getActionPrefix(project, null))) {
        AnAction eachAction = actionManager.getAction(eachId);

        if (!(eachAction instanceof MavenGoalAction))
            continue;
        if (condition != null && !condition.value(actionManager.getActionOrStub(eachId)))
            continue;

        MavenGoalAction mavenAction = (MavenGoalAction) eachAction;
        MavenProject mavenProject = mavenAction.getMavenProject();
        Set<Pair<String, String>> actions = projectToActionsMapping.get(mavenProject);
        if (actions == null) {
            final List<String> projectGoals = collectGoals(mavenProject);
            actions = new TreeSet<Pair<String, String>>(new Comparator<Pair<String, String>>() {
                public int compare(Pair<String, String> o1, Pair<String, String> o2) {
                    String goal1 = o1.getFirst();
                    String goal2 = o2.getFirst();
                    int index1 = projectGoals.indexOf(goal1);
                    int index2 = projectGoals.indexOf(goal2);
                    if (index1 == index2)
                        return goal1.compareToIgnoreCase(goal2);
                    return (index1 < index2 ? -1 : 1);
                }
            });
            projectToActionsMapping.put(mavenProject, actions);
        }
        actions.add(Pair.create(mavenAction.getGoal(), eachId));
    }

    for (Map.Entry<MavenProject, Set<Pair<String, String>>> each : projectToActionsMapping.entrySet()) {
        MavenProject mavenProject = each.getKey();
        Set<Pair<String, String>> goalsToActionIds = each.getValue();
        if (goalsToActionIds.isEmpty())
            continue;
        KeymapGroup group = KeymapGroupFactory.getInstance().createGroup(mavenProject.getDisplayName(),
                TargetAWT.to(icons.MavenIcons.PhasesClosed));
        result.addGroup(group);
        for (Pair<String, String> eachGoalToActionId : goalsToActionIds) {
            group.addActionId(eachGoalToActionId.getSecond());
        }
    }

    return result;
}

From source file:org.napile.idea.thermit.config.impl.AntKeymapExtension.java

License:Apache License

public KeymapGroup createGroup(final Condition<AnAction> filtered, Project project) {
    final Map<AntBuildFile, KeymapGroup> buildFileToGroup = new HashMap<AntBuildFile, KeymapGroup>();
    final KeymapGroup result = KeymapGroupFactory.getInstance()
            .createGroup(KeyMapBundle.message("ant.targets.group.title"), AllIcons.Nodes.KeymapAnt);

    final ActionManagerEx actionManager = ActionManagerEx.getInstanceEx();
    final String[] ids = actionManager
            .getActionIds(project != null ? ThermitConfiguration.getActionIdPrefix(project)
                    : ThermitConfiguration.ACTION_ID_PREFIX);
    Arrays.sort(ids);/*from  www . j a  va  2 s.  c o m*/

    if (project != null) {
        final ThermitConfiguration thermitConfiguration = ThermitConfiguration.getInstance(project);
        ApplicationManager.getApplication().runReadAction(new Runnable() {
            public void run() {
                for (final String id : ids) {
                    if (filtered != null && !filtered.value(actionManager.getActionOrStub(id))) {
                        continue;
                    }
                    final AntBuildFile buildFile = thermitConfiguration.findBuildFileByActionId(id);
                    if (buildFile != null) {
                        KeymapGroup subGroup = buildFileToGroup.get(buildFile);
                        if (subGroup == null) {
                            subGroup = KeymapGroupFactory.getInstance()
                                    .createGroup(buildFile.getPresentableName());
                            buildFileToGroup.put(buildFile, subGroup);
                            result.addGroup(subGroup);
                        }
                        subGroup.addActionId(id);
                    } else {
                        LOG.info("no buildfile found for actionId=" + id);
                    }
                }
            }
        });
    }

    return result;
}