[maven] show actions related to executor groups in build/run configuration menu

This also contributes to IDEA-251443.

GitOrigin-RevId: a5ce1d09159ae52c503ce71f34953a3483fcdda9
This commit is contained in:
Aleksander Kuznetsov
2020-11-02 18:31:26 +00:00
committed by intellij-monorepo-bot
parent ab9bc83018
commit 0eaaf6a084
2 changed files with 19 additions and 4 deletions
@@ -2,14 +2,13 @@
package org.jetbrains.idea.maven.navigator.actions
import com.intellij.execution.Executor
import com.intellij.execution.actions.RunContextAction
import com.intellij.openapi.actionSystem.*
import com.intellij.openapi.project.DumbAware
import org.jetbrains.idea.maven.project.actions.RunBuildAction
import org.jetbrains.idea.maven.statistics.MavenActionsUsagesCollector
class MavenBuildMenu : DefaultActionGroup(), DumbAware {
private val actionManager = ActionManager.getInstance()
override fun update(e: AnActionEvent) {
val project = AnAction.getEventProject(e) ?: return
@@ -20,7 +19,12 @@ class MavenBuildMenu : DefaultActionGroup(), DumbAware {
Executor.EXECUTOR_EXTENSION_NAME.extensionList
.filter { it.isApplicable(project) }
.reversed()
.forEach { add(wrap(RunContextAction(it), it), Constraints.FIRST) }
.forEach {
val contextAction = actionManager.getAction(it.contextActionId)
if (contextAction != null) {
add(wrap(contextAction, it), Constraints.FIRST)
}
}
ActionManager.getInstance().getAction("Maven.RunBuild")?.let {
add(it, Constraints.FIRST)
@@ -4,6 +4,7 @@ package org.jetbrains.idea.maven.navigator.actions;
import com.intellij.execution.Executor;
import com.intellij.execution.ProgramRunnerUtil;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.executors.ExecutorGroup;
import com.intellij.execution.runners.ProgramRunner;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
@@ -14,6 +15,7 @@ import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.utils.MavenDataKeys;
import java.util.ArrayList;
import java.util.List;
public final class MavenRunConfigurationMenu extends DefaultActionGroup implements DumbAware {
@@ -32,7 +34,16 @@ public final class MavenRunConfigurationMenu extends DefaultActionGroup implemen
return;
}
List<Executor> executors = Executor.EXECUTOR_EXTENSION_NAME.getExtensionList();
@SuppressWarnings("DuplicatedCode")
final List<Executor> executors = new ArrayList<>();
for (final Executor executor: Executor.EXECUTOR_EXTENSION_NAME.getExtensionList()) {
if (executor instanceof ExecutorGroup) {
executors.addAll(((ExecutorGroup<?>)executor).childExecutors());
}
else {
executors.add(executor);
}
}
for (int i = executors.size(); --i >= 0; ) {
Executor executor = executors.get(i);
if (!executor.isApplicable(project)) {