List of usage examples for com.intellij.openapi.keymap KeymapGroup addGroup
void addGroup(KeymapGroup keymapGroup);
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; }