From 407882eb707aaff97d1e42d801d28f98e4c86c70 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 18 Oct 2011 17:41:47 +0200 Subject: [PATCH] common Java options in Jet run configuration --- .../jet/plugin/run/JetRunConfiguration.java | 106 +++++++++++++++--- .../plugin/run/JetRunConfigurationEditor.form | 12 +- .../plugin/run/JetRunConfigurationEditor.java | 12 ++ 3 files changed, 113 insertions(+), 17 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java index e38a9b8fd96..4e0beabf3ac 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java @@ -1,8 +1,7 @@ package org.jetbrains.jet.plugin.run; -import com.intellij.execution.ExecutionException; -import com.intellij.execution.Executor; -import com.intellij.execution.JavaRunConfigurationExtensionManager; +import com.intellij.execution.*; +import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.execution.configurations.*; import com.intellij.execution.filters.TextConsoleBuilderFactory; import com.intellij.execution.runners.ExecutionEnvironment; @@ -19,12 +18,21 @@ import org.jetbrains.annotations.NotNull; import java.util.Arrays; import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; /** * @author yole */ -public class JetRunConfiguration extends ModuleBasedConfiguration { +public class JetRunConfiguration extends ModuleBasedConfiguration implements CommonJavaRunConfigurationParameters { public String MAIN_CLASS_NAME; + public String VM_PARAMETERS; + public String PROGRAM_PARAMETERS; + public String WORKING_DIRECTORY; + public boolean ALTERNATIVE_JRE_PATH_ENABLED; + public String ALTERNATIVE_JRE_PATH; + private Map myEnvs = new LinkedHashMap(); + public boolean PASS_PARENT_ENVS = true; public JetRunConfiguration(String name, RunConfigurationModule runConfigurationModule, ConfigurationFactory factory) { super(name, runConfigurationModule, factory); @@ -47,21 +55,91 @@ public class JetRunConfiguration extends ModuleBasedConfiguration getEnvs() { + return myEnvs; + } + + public void setEnvs(@NotNull final Map envs) { + this.myEnvs = envs; + } + + public boolean isPassParentEnvs() { + return PASS_PARENT_ENVS; + } + + @Override + public String getRunClass() { + return MAIN_CLASS_NAME; + } + + @Override + public String getPackage() { + return null; + } + + public boolean isAlternativeJrePathEnabled() { + return ALTERNATIVE_JRE_PATH_ENABLED; + } + + public void setAlternativeJrePathEnabled(boolean enabled) { + ALTERNATIVE_JRE_PATH_ENABLED = enabled; + } + + public String getAlternativeJrePath() { + return ALTERNATIVE_JRE_PATH; + } + + public void setAlternativeJrePath(String path) { + ALTERNATIVE_JRE_PATH = path; + } + @Override public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment) throws ExecutionException { final JavaCommandLineState state = new MyJavaCommandLineState(executionEnvironment); diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form index f7f2de59d22..ab95bf99ace 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form @@ -1,6 +1,6 @@
- + @@ -18,7 +18,7 @@ - + @@ -31,12 +31,18 @@ - + + + + + + + diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java index 4f9a3030c6a..0ffb1a03e76 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java @@ -1,5 +1,6 @@ package org.jetbrains.jet.plugin.run; +import com.intellij.execution.ui.CommonJavaParametersPanel; import com.intellij.execution.ui.ConfigurationModuleSelector; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SettingsEditor; @@ -9,6 +10,8 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; /** * @author yole @@ -17,16 +20,24 @@ public class JetRunConfigurationEditor extends SettingsEditor moduleChooser = LabeledComponent.create(new JComboBox(), "Use classpath and JDK of module:"); myModuleChooserHolder.add(moduleChooser, BorderLayout.CENTER); myModuleSelector = new ConfigurationModuleSelector(project, moduleChooser.getComponent()); + myCommonProgramParameters.setModuleContext(myModuleSelector.getModule()); + moduleChooser.getComponent().addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + myCommonProgramParameters.setModuleContext(myModuleSelector.getModule()); + } + }); } @Override protected void resetEditorFrom(JetRunConfiguration configuration) { + myCommonProgramParameters.reset(configuration); myMainClassField.setText(configuration.MAIN_CLASS_NAME); myModuleSelector.reset(configuration); } @@ -34,6 +45,7 @@ public class JetRunConfigurationEditor extends SettingsEditor