summaryrefslogtreecommitdiff
path: root/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java')
-rw-r--r--platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java65
1 files changed, 27 insertions, 38 deletions
diff --git a/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java b/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java
index bd9f5014fabb..44af49d36cdd 100644
--- a/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java
+++ b/platform/lang-impl/src/com/intellij/execution/ExecutorRegistryImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2009 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package com.intellij.execution;
import com.intellij.execution.actions.RunContextAction;
@@ -35,12 +34,8 @@ import org.jetbrains.annotations.Nullable;
import java.util.*;
-/**
- * @author spleaner
- */
public class ExecutorRegistryImpl extends ExecutorRegistry {
- private static final Logger LOG = Logger.getInstance("#com.intellij.execution.ExecutorRegistryImpl");
-
+ private static final Logger LOG = Logger.getInstance(ExecutorRegistryImpl.class);
@NonNls public static final String RUNNERS_GROUP = "RunnerActions";
@NonNls public static final String RUN_CONTEXT_GROUP = "RunContextGroup";
@@ -84,8 +79,7 @@ public class ExecutorRegistryImpl extends ExecutorRegistry {
action = anAction;
}
- final DefaultActionGroup group = (DefaultActionGroup) myActionManager.getAction(groupId);
- group.add(action);
+ ((DefaultActionGroup)myActionManager.getAction(groupId)).add(action);
}
synchronized void deinitExecutor(@NotNull final Executor executor) {
@@ -135,18 +129,18 @@ public class ExecutorRegistryImpl extends ExecutorRegistry {
final MessageBusConnection connect = project.getMessageBus().connect(project);
connect.subscribe(ExecutionManager.EXECUTION_TOPIC, new ExecutionAdapter(){
@Override
- public void processStartScheduled(String executorId, ExecutionEnvironment env) {
- myInProgress.add(createExecutionId(executorId, env, project));
+ public void processStartScheduled(String executorId, ExecutionEnvironment environment) {
+ myInProgress.add(createExecutionId(executorId, environment));
}
@Override
- public void processNotStarted(String executorId, @NotNull ExecutionEnvironment env) {
- myInProgress.remove(createExecutionId(executorId, env, project));
+ public void processNotStarted(String executorId, @NotNull ExecutionEnvironment environment) {
+ myInProgress.remove(createExecutionId(executorId, environment));
}
@Override
- public void processStarted(String executorId, @NotNull ExecutionEnvironment env, @NotNull ProcessHandler handler) {
- myInProgress.remove(createExecutionId(executorId, env, project));
+ public void processStarted(String executorId, @NotNull ExecutionEnvironment environment, @NotNull ProcessHandler handler) {
+ myInProgress.remove(createExecutionId(executorId, environment));
}
});
}
@@ -172,26 +166,29 @@ public class ExecutorRegistryImpl extends ExecutorRegistry {
}
}
- private static Trinity<Project, String, String> createExecutionId(String executorId, ExecutionEnvironment env, Project project) {
- return new Trinity<Project, String, String>(project, executorId, env.getRunnerId());
+ @NotNull
+ private static Trinity<Project, String, String> createExecutionId(String executorId, @NotNull ExecutionEnvironment environment) {
+ return Trinity.create(environment.getProject(), executorId, environment.getRunner().getRunnerId());
}
@Override
public boolean isStarting(Project project, final String executorId, final String runnerId) {
- return myInProgress.contains(new Trinity<Project, String, String>(project, executorId, runnerId));
+ return myInProgress.contains(Trinity.create(project, executorId, runnerId));
+ }
+
+ @Override
+ public boolean isStarting(@NotNull ExecutionEnvironment environment) {
+ return isStarting(environment.getProject(), environment.getExecutor().getId(), environment.getRunner().getRunnerId());
}
@Override
public synchronized void disposeComponent() {
- if (myExecutors.size() > 0) {
- List<Executor> executors = new ArrayList<Executor>(myExecutors);
- for (Executor executor : executors) {
+ if (!myExecutors.isEmpty()) {
+ for (Executor executor : new ArrayList<Executor>(myExecutors)) {
deinitExecutor(executor);
}
-
- myExecutors = null;
}
-
+ myExecutors = null;
myActionManager = null;
}
@@ -206,7 +203,7 @@ public class ExecutorRegistryImpl extends ExecutorRegistry {
@Override
public void update(final AnActionEvent e) {
final Presentation presentation = e.getPresentation();
- final Project project = CommonDataKeys.PROJECT.getData(e.getDataContext());
+ final Project project = e.getProject();
if (project == null || !project.isInitialized() || project.isDisposed() || DumbService.getInstance(project).isDumb()) {
presentation.setEnabled(false);
@@ -222,7 +219,7 @@ public class ExecutorRegistryImpl extends ExecutorRegistry {
ExecutionTarget target = ExecutionTargetManager.getActiveTarget(project);
enabled = ExecutionTargetManager.canRun(selectedConfiguration, target)
- && runner != null && !isStarting(project, myExecutor.getId(), runner.getRunnerId());
+ && runner != null && !isStarting(project, myExecutor.getId(), runner.getRunnerId());
if (enabled) {
presentation.setDescription(myExecutor.getDescription());
@@ -244,25 +241,17 @@ public class ExecutorRegistryImpl extends ExecutorRegistry {
@Override
public void actionPerformed(final AnActionEvent e) {
- final DataContext dataContext = e.getDataContext();
final Project project = e.getProject();
if (project == null || project.isDisposed()) {
return;
}
- final RunnerAndConfigurationSettings configuration = getConfiguration(project);
- if (configuration == null) {
- return;
- }
- ExecutionTarget target = ExecutionTargetManager.getActiveTarget(project);
- ExecutionEnvironmentBuilder builder = new ExecutionEnvironmentBuilder(project, myExecutor);
- ProgramRunner runner = ProgramRunnerUtil.getRunner(myExecutor.getId(), configuration);
- if (runner == null) {
+ RunnerAndConfigurationSettings configuration = getConfiguration(project);
+ ExecutionEnvironmentBuilder builder = configuration == null ? null : ExecutionEnvironmentBuilder.createOrNull(myExecutor, configuration);
+ if (builder == null) {
return;
}
-
- builder.setDataContext(dataContext).setTarget(target).setRunnerAndSettings(runner, configuration);
- ExecutionManager.getInstance(project).restartRunProfile(runner, builder.build(), null);
+ ExecutionManager.getInstance(project).restartRunProfile(builder.activeTarget().dataContext(e.getDataContext()).build());
}
}
}