package com.jetbrains.lang.dart.ide.runner.server; import com.intellij.execution.ExecutionException; import com.intellij.execution.Executor; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.configurations.RunProfileState; import com.intellij.execution.runners.ExecutionEnvironment; import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.project.Project; import com.intellij.util.PathUtil; import com.jetbrains.lang.dart.ide.runner.base.DartRunConfigurationBase; import com.jetbrains.lang.dart.ide.runner.server.ui.DartCommandLineConfigurationEditorForm; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public class DartCommandLineRunConfiguration extends DartRunConfigurationBase { private @NotNull DartCommandLineRunnerParameters myRunnerParameters = new DartCommandLineRunnerParameters(); public DartCommandLineRunConfiguration(String name, Project project, DartCommandLineRunConfigurationType configurationType) { super(project, configurationType.getConfigurationFactories()[0], name); } @NotNull public DartCommandLineRunnerParameters getRunnerParameters() { return myRunnerParameters; } @NotNull public SettingsEditor<? extends RunConfiguration> getConfigurationEditor() { return new DartCommandLineConfigurationEditorForm(getProject()); } public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment env) throws ExecutionException { return new DartCommandLineRunningState(env); } @Nullable public String suggestedName() { final String filePath = myRunnerParameters.getFilePath(); return filePath == null ? null : PathUtil.getFileName(filePath); } public DartCommandLineRunConfiguration clone() { final DartCommandLineRunConfiguration clone = (DartCommandLineRunConfiguration)super.clone(); clone.myRunnerParameters = myRunnerParameters.clone(); return clone; } }