mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
simplify API — ExecutionEnvironment is enough
This commit is contained in:
@@ -99,7 +99,7 @@ public class DefaultJavaProgramRunner extends JavaPatchableProgramRunner {
|
||||
|
||||
onProcessStarted(env.getRunnerSettings(), executionResult);
|
||||
|
||||
final RunContentBuilder contentBuilder = new RunContentBuilder(this, executionResult, env);
|
||||
final RunContentBuilder contentBuilder = new RunContentBuilder(executionResult, env);
|
||||
Disposer.register(project, contentBuilder);
|
||||
if (shouldAddDefaultActions) {
|
||||
addDefaultActions(contentBuilder);
|
||||
|
||||
@@ -78,6 +78,16 @@ public final class ExecutionEnvironmentBuilder {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static ExecutionEnvironment fix(@NotNull ExecutionEnvironment environment, @NotNull ProgramRunner runner) {
|
||||
if (runner.getRunnerId().equals(environment.getRunnerId())) {
|
||||
return environment;
|
||||
}
|
||||
else {
|
||||
return new ExecutionEnvironmentBuilder(environment).runnerId(runner.getRunnerId()).build();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnusedDeclaration")
|
||||
@Deprecated
|
||||
/**
|
||||
|
||||
@@ -51,7 +51,8 @@ public abstract class GenericProgramRunner<Settings extends RunnerSettings> exte
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected abstract RunContentDescriptor doExecute(@NotNull Project project, @NotNull RunProfileState state,
|
||||
protected abstract RunContentDescriptor doExecute(@NotNull Project project,
|
||||
@NotNull RunProfileState state,
|
||||
@Nullable RunContentDescriptor contentToReuse,
|
||||
@NotNull ExecutionEnvironment environment) throws ExecutionException;
|
||||
|
||||
|
||||
@@ -192,11 +192,11 @@ public class ExecutionManagerImpl extends ExecutionManager implements ProjectCom
|
||||
@Override
|
||||
public void startRunProfile(@NotNull final RunProfileStarter starter, @NotNull final RunProfileState state,
|
||||
@NotNull final Project project, @NotNull final Executor executor, @NotNull final ExecutionEnvironment env) {
|
||||
final RunContentDescriptor reuseContent =
|
||||
ExecutionManager.getInstance(project).getContentManager().getReuseContent(env);
|
||||
final RunContentDescriptor reuseContent = ExecutionManager.getInstance(project).getContentManager().getReuseContent(env);
|
||||
if (reuseContent != null) {
|
||||
reuseContent.setExecutionId(env.getExecutionId());
|
||||
}
|
||||
|
||||
final RunProfile profile = env.getRunProfile();
|
||||
|
||||
project.getMessageBus().syncPublisher(EXECUTION_TOPIC).processStartScheduled(executor.getId(), env);
|
||||
|
||||
@@ -36,10 +36,10 @@ public abstract class DefaultProgramRunner extends GenericProgramRunner {
|
||||
@NotNull final ExecutionEnvironment env) throws ExecutionException {
|
||||
FileDocumentManager.getInstance().saveAllDocuments();
|
||||
ExecutionResult executionResult = state.execute(env.getExecutor(), this);
|
||||
if (executionResult == null) return null;
|
||||
|
||||
final RunContentBuilder contentBuilder = new RunContentBuilder(this, executionResult, env);
|
||||
return contentBuilder.showRunContent(contentToReuse);
|
||||
if (executionResult == null) {
|
||||
return null;
|
||||
}
|
||||
return new RunContentBuilder(executionResult, env).showRunContent(contentToReuse);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -54,7 +54,6 @@ import java.util.Collection;
|
||||
public class RunContentBuilder extends LogConsoleManagerBase {
|
||||
@NonNls private static final String JAVA_RUNNER = "JavaRunner";
|
||||
|
||||
private final ProgramRunner myRunner;
|
||||
private final ArrayList<AnAction> myRunnerActions = new ArrayList<AnAction>();
|
||||
private ExecutionResult myExecutionResult;
|
||||
|
||||
@@ -66,35 +65,35 @@ public class RunContentBuilder extends LogConsoleManagerBase {
|
||||
/**
|
||||
* @deprecated use {@link #RunContentBuilder(ProgramRunner, com.intellij.execution.ExecutionResult, ExecutionEnvironment)}
|
||||
*/
|
||||
@SuppressWarnings("UnusedParameters")
|
||||
public RunContentBuilder(@NotNull Project project,
|
||||
ProgramRunner runner,
|
||||
Executor executor,
|
||||
ExecutionResult executionResult,
|
||||
@NotNull ExecutionEnvironment environment) {
|
||||
//noinspection deprecation
|
||||
this(runner, executionResult, environment);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #RunContentBuilder(com.intellij.execution.ExecutionResult, ExecutionEnvironment)}
|
||||
* to remove in IDEA 15
|
||||
*/
|
||||
public RunContentBuilder(ProgramRunner runner,
|
||||
ExecutionResult executionResult,
|
||||
@NotNull ExecutionEnvironment environment) {
|
||||
this(executionResult, ExecutionEnvironmentBuilder.fix(environment, runner));
|
||||
}
|
||||
|
||||
public RunContentBuilder(ExecutionResult executionResult, @NotNull ExecutionEnvironment environment) {
|
||||
super(environment.getProject(), SearchScopeProvider.createSearchScope(environment.getProject(), environment.getRunProfile()));
|
||||
myRunner = runner;
|
||||
|
||||
myExecutor = environment.getExecutor();
|
||||
myManager = new LogFilesManager(environment.getProject(), this, this);
|
||||
myExecutionResult = executionResult;
|
||||
setEnvironment(environment);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #RunContentBuilder(com.intellij.openapi.project.Project, ProgramRunner, com.intellij.execution.Executor, com.intellij.execution.ExecutionResult, ExecutionEnvironment)}
|
||||
*/
|
||||
public RunContentBuilder(final Project project, final ProgramRunner runner, Executor executor) {
|
||||
super(project);
|
||||
myRunner = runner;
|
||||
myExecutor = executor;
|
||||
myManager = new LogFilesManager(project, this, this);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@NotNull
|
||||
public static GlobalSearchScope createSearchScope(Project project, RunProfile runProfile) {
|
||||
@@ -204,7 +203,7 @@ public class RunContentBuilder extends LogConsoleManagerBase {
|
||||
private ActionGroup createActionToolbar(final RunContentDescriptor contentDescriptor, final JComponent component) {
|
||||
final DefaultActionGroup actionGroup = new DefaultActionGroup();
|
||||
|
||||
final RestartAction restartAction = new RestartAction(myExecutor, myRunner, contentDescriptor, getEnvironment());
|
||||
final RestartAction restartAction = new RestartAction(myExecutor, contentDescriptor, getEnvironment());
|
||||
restartAction.registerShortcut(component);
|
||||
actionGroup.add(restartAction);
|
||||
|
||||
|
||||
@@ -174,11 +174,7 @@ public class XDebuggerManagerImpl extends XDebuggerManager
|
||||
@NotNull ExecutionEnvironment environment,
|
||||
@Nullable RunContentDescriptor contentToReuse,
|
||||
@NotNull XDebugProcessStarter processStarter) throws ExecutionException {
|
||||
if (!runner.getRunnerId().equals(environment.getRunnerId())) {
|
||||
// fix invalid environment
|
||||
environment = new ExecutionEnvironmentBuilder(environment).runnerId(runner.getRunnerId()).build();
|
||||
}
|
||||
return startSession(contentToReuse, processStarter, new XDebugSessionImpl(environment, this));
|
||||
return startSession(contentToReuse, processStarter, new XDebugSessionImpl(ExecutionEnvironmentBuilder.fix(environment, runner), this));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user