From 856c4431146239559e44e736b9fb977f2e16eac8 Mon Sep 17 00:00:00 2001 From: nik Date: Wed, 9 Dec 2009 15:40:45 +0300 Subject: [PATCH] "Build All artifacts" action added --- ...tionGroup.java => BuildAllArtifactsAction.java} | 36 ++++++++++++---------- .../compiler/actions/BuildArtifactActionGroup.java | 10 +++--- .../src/messages/ActionsBundle.properties | 3 +- resources/src/idea/IdeaActions.xml | 2 ++ 4 files changed, 28 insertions(+), 23 deletions(-) copy java/compiler/impl/src/com/intellij/compiler/actions/{BuildArtifactActionGroup.java => BuildAllArtifactsAction.java} (59%) diff --git a/java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java b/java/compiler/impl/src/com/intellij/compiler/actions/BuildAllArtifactsAction.java similarity index 59% copy from java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java copy to java/compiler/impl/src/com/intellij/compiler/actions/BuildAllArtifactsAction.java index cae981933a..e21e4183ed 100644 --- a/java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java +++ b/java/compiler/impl/src/com/intellij/compiler/actions/BuildAllArtifactsAction.java @@ -15,41 +15,43 @@ */ package com.intellij.compiler.actions; -import com.intellij.openapi.actionSystem.ActionGroup; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.compiler.CompilerManager; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.packaging.artifacts.Artifact; import com.intellij.packaging.artifacts.ArtifactManager; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; +import com.intellij.packaging.impl.compiler.ArtifactCompileScope; import java.util.ArrayList; import java.util.List; /** - * @author nik - */ -public class BuildArtifactActionGroup extends ActionGroup { - public BuildArtifactActionGroup() { - super("Build Artifact", true); +* @author nik +*/ +public class BuildAllArtifactsAction extends AnAction { + public BuildAllArtifactsAction() { + super("Build All Artifacts", "Build all configured artifacts", null); + } + + @Override + public void update(AnActionEvent e) { + e.getPresentation().setEnabled(e.getData(PlatformDataKeys.PROJECT) != null); } - @NotNull - public AnAction[] getChildren(@Nullable AnActionEvent e) { - if (e == null) return EMPTY_ARRAY; + @Override + public void actionPerformed(AnActionEvent e) { final Project project = e.getData(PlatformDataKeys.PROJECT); - if (project == null) return EMPTY_ARRAY; + if (project == null) return; - final Artifact[] artifacts = ArtifactManager.getInstance(project).getSortedArtifacts(); - List actions = new ArrayList(); - for (Artifact artifact : artifacts) { + List toBuild = new ArrayList(); + for (Artifact artifact : ArtifactManager.getInstance(project).getSortedArtifacts()) { if (!StringUtil.isEmpty(artifact.getOutputPath())) { - actions.add(new BuildArtifactAction(project, artifact)); + toBuild.add(artifact); } } - return actions.toArray(new AnAction[actions.size()]); + CompilerManager.getInstance(project).make(ArtifactCompileScope.createArtifactsScope(project, toBuild), null); } } diff --git a/java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java b/java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java index cae981933a..521e1d2dbb 100644 --- a/java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java +++ b/java/compiler/impl/src/com/intellij/compiler/actions/BuildArtifactActionGroup.java @@ -15,10 +15,7 @@ */ package com.intellij.compiler.actions; -import com.intellij.openapi.actionSystem.ActionGroup; -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.PlatformDataKeys; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.packaging.artifacts.Artifact; @@ -50,6 +47,11 @@ public class BuildArtifactActionGroup extends ActionGroup { actions.add(new BuildArtifactAction(project, artifact)); } } + if (actions.size() > 1) { + actions.add(0, new BuildAllArtifactsAction()); + actions.add(1, Separator.getInstance()); + } return actions.toArray(new AnAction[actions.size()]); } + } diff --git a/platform/platform-resources-en/src/messages/ActionsBundle.properties b/platform/platform-resources-en/src/messages/ActionsBundle.properties index f865108d50..c7471702fe 100644 --- a/platform/platform-resources-en/src/messages/ActionsBundle.properties +++ b/platform/platform-resources-en/src/messages/ActionsBundle.properties @@ -556,9 +556,8 @@ action.RunAPT.text=Process {0} _Annotations action.RunAPT.description=Run Annotation Processors on the selected scope action.GenerateAntBuild.text=_Generate Ant Build... action.GenerateAntBuild.description=Generate Ant Build File from the Project +action.BuildAllArtifacts.text=Build All Artifacts group.BuildArtifactsGroup.text=Build Artifact -action.BuildJar.text=Build _Jars... -action.BuildJar.description=Archive module output directories into jar files group.RunMenu.text=R_un group.RunnerActions.text=Run/Debug action.editRunConfigurations.text=Edit Configu_rations diff --git a/resources/src/idea/IdeaActions.xml b/resources/src/idea/IdeaActions.xml index eb84741830..25b0ceb666 100644 --- a/resources/src/idea/IdeaActions.xml +++ b/resources/src/idea/IdeaActions.xml @@ -182,6 +182,8 @@ + + -- 2.11.4.GIT