Make K2JSRunConfiguration extend ModuleBasedConfiguration

This commit is contained in:
pTalanov
2012-05-16 19:50:03 +04:00
parent 95360012cf
commit ab8893ac69
2 changed files with 24 additions and 25 deletions
@@ -26,8 +26,9 @@ import com.intellij.execution.runners.ProgramRunner;
import com.intellij.execution.runners.RunConfigurationWithSuppressedDefaultRunAction;
import com.intellij.execution.ui.ExecutionConsole;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.JDOMExternalizable;
import com.intellij.openapi.util.WriteExternalException;
@@ -35,18 +36,33 @@ import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
import java.util.Collection;
/**
* @author Pavel Talanov
*/
@SuppressWarnings("deprecation")
public final class K2JSRunConfiguration extends RunConfigurationBase
implements RunConfigurationWithSuppressedDefaultRunAction {
public final class K2JSRunConfiguration extends ModuleBasedConfiguration<RunConfigurationModule>
implements RunConfigurationWithSuppressedDefaultRunAction {
@NotNull
private K2JSConfigurationSettings settings = new K2JSConfigurationSettings(getProject());
public K2JSRunConfiguration(String name, Project project, ConfigurationFactory factory) {
super(project, factory, name);
public K2JSRunConfiguration(String name, RunConfigurationModule runConfigurationModule, ConfigurationFactory factory) {
super(name, runConfigurationModule, factory);
runConfigurationModule.init();
}
@Override
public Collection<Module> getValidModules() {
return Arrays.asList(ModuleManager.getInstance(getProject()).getModules());
}
@Override
protected ModuleBasedConfiguration createInstance() {
return new K2JSRunConfiguration(getName(), getConfigurationModule(), getFactory());
}
@Override
@@ -54,27 +70,13 @@ public final class K2JSRunConfiguration extends RunConfigurationBase
return new K2JSRunConfigurationEditor(getProject());
}
@Override
public JDOMExternalizable createRunnerSettings(ConfigurationInfoProvider provider) {
return null;
}
@Override
public SettingsEditor<JDOMExternalizable> getRunnerSettingsEditor(ProgramRunner runner) {
return null;
}
@Override
public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment)
throws ExecutionException {
throws ExecutionException {
return new MyProfileState();
}
@Override
public void checkConfiguration() throws RuntimeConfigurationException {
//do nothing
}
private final class MyProfileState implements RunProfileState {
@Override
public ExecutionResult execute(Executor executor, @NotNull ProgramRunner runner) throws ExecutionException {
@@ -16,10 +16,7 @@
package org.jetbrains.jet.plugin.k2jsrun;
import com.intellij.execution.configurations.ConfigurationFactory;
import com.intellij.execution.configurations.ConfigurationTypeBase;
import com.intellij.execution.configurations.ConfigurationTypeUtil;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.*;
import com.intellij.openapi.project.Project;
import org.jetbrains.jet.plugin.JetIcons;
@@ -43,7 +40,7 @@ public final class K2JSRunConfigurationType extends ConfigurationTypeBase {
@Override
public RunConfiguration createTemplateConfiguration(Project project) {
return new K2JSRunConfiguration("Kotlin to JavaScript", project, this);
return new K2JSRunConfiguration("Kotlin to JavaScript", new RunConfigurationModule(project), this);
}
}
}