From 691872a7eedf8120c24ba3f86358c7ce66aef6b5 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Thu, 6 May 2010 20:32:18 +0400 Subject: [PATCH] run configurations: refactoring --- .../application/ApplicationConfigurable.form | 16 +-- .../application/ApplicationConfigurable.java | 8 -- .../application/ApplicationConfiguration.java | 24 ++-- .../ui/CommonJavaParametersPanel.java | 11 +- .../execution/util/JavaParametersUtil.java | 22 ++-- .../configurations/SimpleJavaParameters.java | 40 +----- .../SimpleProgramParameters.java | 31 +++++ .../openapi/projectRoots/JdkUtil.java | 11 +- ...mmonProgramRunConfigurationParameters.java | 10 ++ .../ui/CommonProgramParametersPanel.java | 58 +++++---- .../execution/util/ProgramParametersUtil.java | 11 ++ .../execution/junit/JUnitConfiguration.java | 69 ++++++---- .../configuration/JUnitConfigurable.form | 18 +-- .../configuration/JUnitConfigurable.java | 119 +++++++++--------- .../configuration/TestNGConfiguration.java | 16 +++ .../TestNGConfigurationEditor.form | 30 ++--- .../TestNGConfigurationEditor.java | 7 -- 17 files changed, 254 insertions(+), 247 deletions(-) diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form index e0b618cf023b..2a578f8dc1bb 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.form @@ -1,6 +1,6 @@
- + @@ -10,7 +10,7 @@ - + @@ -30,7 +30,7 @@ - + @@ -39,23 +39,17 @@ - + - + - - - - - - diff --git a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java index e3f37b5cf27e..c803a424c764 100644 --- a/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java +++ b/java/execution/impl/src/com/intellij/execution/application/ApplicationConfigurable.java @@ -16,7 +16,6 @@ package com.intellij.execution.application; import com.intellij.execution.ExecutionBundle; -import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.execution.ui.AlternativeJREPanel; import com.intellij.execution.ui.ClassBrowser; import com.intellij.execution.ui.CommonJavaParametersPanel; @@ -42,7 +41,6 @@ public class ApplicationConfigurable extends SettingsEditor getEnvs() { + return myEnvs; + } + + public void setEnvs(final Map envs) { + this.myEnvs = envs; + } + + public boolean isPassParentEnvs() { + return PASS_PARENT_ENVS; + } + @Nullable public String getRunClass() { return MAIN_CLASS_NAME; @@ -221,14 +237,6 @@ public class ApplicationConfiguration extends ModuleBasedConfiguration getEnvs() { - return myEnvs; - } - - public void setEnvs(final Map envs) { - this.myEnvs = envs; - } - private class MyJavaCommandLineState extends JavaCommandLineState { public MyJavaCommandLineState(final ExecutionEnvironment environment) { super(environment); diff --git a/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java b/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java index a4534cd7097f..2c980cb9d75e 100644 --- a/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java +++ b/java/execution/impl/src/com/intellij/execution/ui/CommonJavaParametersPanel.java @@ -20,8 +20,6 @@ import com.intellij.execution.ExecutionBundle; import com.intellij.openapi.ui.LabeledComponent; import com.intellij.ui.RawCommandLineEditor; -import java.awt.*; - public class CommonJavaParametersPanel extends CommonProgramParametersPanel { private LabeledComponent myVMParameters; @@ -30,16 +28,13 @@ public class CommonJavaParametersPanel extends CommonProgramParametersPanel { } @Override - protected void addComponents(GridBagConstraints c) { + protected void addComponents() { myVMParameters = LabeledComponent.create(new RawCommandLineEditor(), ExecutionBundle.message("run.configuration.java.vm.parameters.label")); copyDialogCaption(myVMParameters); - - c.gridy++; - add(myVMParameters, c); - - super.addComponents(c); + add(myVMParameters); + super.addComponents(); } public void setVMParameters(String text) { diff --git a/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java b/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java index d858e7f3d9bf..87461cf49d86 100644 --- a/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java +++ b/java/execution/impl/src/com/intellij/execution/util/JavaParametersUtil.java @@ -33,7 +33,6 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiFile; -import java.util.HashMap; import java.util.Map; /** @@ -51,18 +50,14 @@ public class JavaParametersUtil { String vmParameters = configuration.getVMParameters(); if (vmParameters != null) { vmParameters = ProgramParametersUtil.expandPath(vmParameters, module, project); - } - if (parameters.getEnv() != null) { - final Map envs = new HashMap(); - for (String env : parameters.getEnv().keySet()) { - final String value = ProgramParametersUtil.expandPath(parameters.getEnv().get(env), module, project); - envs.put(env, value); - if (vmParameters != null) { - vmParameters = StringUtil.replace(vmParameters, "$" + env + "$", value, false); //replace env usages + + if (parameters.getEnv() != null) { + for (Map.Entry each : parameters.getEnv().entrySet()) { + vmParameters = StringUtil.replace(vmParameters, "$" + each.getKey() + "$", each.getValue(), false); //replace env usages } } - parameters.setEnv(envs); } + parameters.getVMParametersList().addParametersString(vmParameters); } @@ -71,8 +66,8 @@ public class JavaParametersUtil { final Module module = configurationModule.getModule(); if (module == null) throw CantRunException.noModuleConfigured(configurationModule.getModuleName()); final PsiClass psiClass = JavaExecutionUtil.findMainClass(module, mainClassName); - if (psiClass == null) { - if ( ! classMustHaveSource ) return JavaParameters.JDK_AND_CLASSES_AND_TESTS; + if (psiClass == null) { + if (!classMustHaveSource) return JavaParameters.JDK_AND_CLASSES_AND_TESTS; throw CantRunException.classNotFound(mainClassName, module); } final PsiFile psiFile = psiClass.getContainingFile(); @@ -96,7 +91,8 @@ public class JavaParametersUtil { parameters.configureByModule(module, classPathType, createModuleJdk(module, jreHome)); } - public static void configureProject(Project project, final JavaParameters parameters, final int classPathType, final String jreHome) throws CantRunException { + public static void configureProject(Project project, final JavaParameters parameters, final int classPathType, final String jreHome) + throws CantRunException { parameters.configureByProject(project, classPathType, createProjectJdk(project, jreHome)); } diff --git a/platform/lang-api/src/com/intellij/execution/configurations/SimpleJavaParameters.java b/platform/lang-api/src/com/intellij/execution/configurations/SimpleJavaParameters.java index a2ee402f3b16..7e3b2962644b 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/SimpleJavaParameters.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/SimpleJavaParameters.java @@ -16,7 +16,6 @@ package com.intellij.execution.configurations; -import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.util.PathsList; @@ -24,20 +23,16 @@ import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.Nullable; import java.nio.charset.Charset; -import java.util.HashMap; -import java.util.Map; /** * @author Gregory.Shrago */ public class SimpleJavaParameters extends SimpleProgramParameters { private Sdk myJdk; - private final PathsList myClassPath = new PathsList(); private String myMainClass; + private final PathsList myClassPath = new PathsList(); private final ParametersList myVmParameters = new ParametersList(); private Charset myCharset = CharsetToolkit.getDefaultSystemCharset(); - private Map myEnv; - private boolean myPassParentEnvs = true; public String getMainClass() { return myMainClass; @@ -61,6 +56,10 @@ public class SimpleJavaParameters extends SimpleProgramParameters { myMainClass = mainClass; } + public PathsList getClassPath() { + return myClassPath; + } + public ParametersList getVMParametersList() { return myVmParameters; } @@ -72,33 +71,4 @@ public class SimpleJavaParameters extends SimpleProgramParameters { public void setCharset(final Charset charset) { myCharset = charset; } - - public PathsList getClassPath() { - return myClassPath; - } - - public Map getEnv() { - return myEnv; - } - - public void setEnv(final Map env) { - myEnv = env; - } - - public boolean isPassParentEnvs() { - return myPassParentEnvs; - } - - public void setPassParentEnvs(final boolean passDefaultEnvs) { - myPassParentEnvs = passDefaultEnvs; - } - - public void setupEnvs(Map envs, boolean passDefault) { - if (!envs.isEmpty()) { - final HashMap map = new HashMap(envs); - EnvironmentVariablesComponent.inlineParentOccurrences(map); - setEnv(map); - setPassParentEnvs(passDefault); - } - } } diff --git a/platform/lang-api/src/com/intellij/execution/configurations/SimpleProgramParameters.java b/platform/lang-api/src/com/intellij/execution/configurations/SimpleProgramParameters.java index da8d984bbcb3..808127ad6c6b 100644 --- a/platform/lang-api/src/com/intellij/execution/configurations/SimpleProgramParameters.java +++ b/platform/lang-api/src/com/intellij/execution/configurations/SimpleProgramParameters.java @@ -16,11 +16,17 @@ package com.intellij.execution.configurations; +import com.intellij.execution.configuration.EnvironmentVariablesComponent; + import java.io.File; +import java.util.HashMap; +import java.util.Map; public class SimpleProgramParameters { private final ParametersList myProgramParameters = new ParametersList(); private String myWorkingDirectory; + private Map myEnv; + private boolean myPassParentEnvs = true; public String getWorkingDirectory() { return myWorkingDirectory; @@ -37,4 +43,29 @@ public class SimpleProgramParameters { public ParametersList getProgramParametersList() { return myProgramParameters; } + + public Map getEnv() { + return myEnv; + } + + public void setEnv(final Map env) { + myEnv = env; + } + + public boolean isPassParentEnvs() { + return myPassParentEnvs; + } + + public void setPassParentEnvs(final boolean passDefaultEnvs) { + myPassParentEnvs = passDefaultEnvs; + } + + public void setupEnvs(Map envs, boolean passDefault) { + if (!envs.isEmpty()) { + final HashMap map = new HashMap(envs); + EnvironmentVariablesComponent.inlineParentOccurrences(map); + setEnv(map); + setPassParentEnvs(passDefault); + } + } } diff --git a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java index da262d36699d..a24c1ae311c3 100644 --- a/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/projectRoots/JdkUtil.java @@ -146,6 +146,12 @@ public class JdkUtil { commandLine.setCharset(charset); } + final Map env = javaParameters.getEnv(); + if (env != null) { + commandLine.setEnvParams(env); + commandLine.setPassParentEnvs(javaParameters.isPassParentEnvs()); + } + final Class commandLineWrapper; if (forceDynamicClasspath && (commandLineWrapper = getCommandLineWrapperClass()) != null) { File classpathFile = null; @@ -191,11 +197,6 @@ public class JdkUtil { commandLine.addParameters(javaParameters.getProgramParametersList().getList()); commandLine.setWorkDirectory(javaParameters.getWorkingDirectory()); - final Map env = javaParameters.getEnv(); - if (env != null) { - commandLine.setEnvParams(env); - commandLine.setPassParentEnvs(javaParameters.isPassParentEnvs()); - } return commandLine; } diff --git a/platform/lang-impl/src/com/intellij/execution/CommonProgramRunConfigurationParameters.java b/platform/lang-impl/src/com/intellij/execution/CommonProgramRunConfigurationParameters.java index 0f997ce0dcb7..45dbeee31aac 100644 --- a/platform/lang-impl/src/com/intellij/execution/CommonProgramRunConfigurationParameters.java +++ b/platform/lang-impl/src/com/intellij/execution/CommonProgramRunConfigurationParameters.java @@ -17,6 +17,8 @@ package com.intellij.execution; import com.intellij.openapi.project.Project; +import java.util.Map; + public interface CommonProgramRunConfigurationParameters { Project getProject(); @@ -27,4 +29,12 @@ public interface CommonProgramRunConfigurationParameters { void setWorkingDirectory(String value); String getWorkingDirectory(); + + void setEnvs(Map envs); + + Map getEnvs(); + + void setPassParentEnvs(boolean passParentEnvs); + + boolean isPassParentEnvs(); } diff --git a/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java b/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java index ec37a53e50d6..1b5a3d37319c 100644 --- a/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java +++ b/platform/lang-impl/src/com/intellij/execution/ui/CommonProgramParametersPanel.java @@ -17,6 +17,7 @@ package com.intellij.execution.ui; import com.intellij.execution.CommonProgramRunConfigurationParameters; import com.intellij.execution.ExecutionBundle; +import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.openapi.actionSystem.LangDataKeys; import com.intellij.openapi.application.PathMacros; import com.intellij.openapi.fileChooser.FileChooser; @@ -46,11 +47,14 @@ public class CommonProgramParametersPanel extends JPanel { private LabeledComponent myProgramParametersComponent; private LabeledComponent myWorkingDirectoryComponent; private TextFieldWithBrowseButton myWorkingDirectoryField; + private EnvironmentVariablesComponent myEnvVariablesComponent; private Module myModuleContext = null; public CommonProgramParametersPanel() { - super(new GridBagLayout()); + super(); + setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + initComponents(); copyDialogCaption(myProgramParametersComponent); } @@ -95,21 +99,17 @@ public class CommonProgramParametersPanel extends JPanel { panel.add(button, BorderLayout.EAST); myWorkingDirectoryComponent = LabeledComponent.create(panel, ExecutionBundle.message("run.configuration.working.directory.label")); + myEnvVariablesComponent = new EnvironmentVariablesComponent(); - GridBagConstraints c = new GridBagConstraints(); - c.weightx = 1; - c.fill = GridBagConstraints.HORIZONTAL; - c.anchor = GridBagConstraints.LINE_START; - c.gridx = 0; + addComponents(); - addComponents(c); + setPreferredSize(new Dimension(10, 10)); } - protected void addComponents(GridBagConstraints c) { - c.gridy++; - add(myProgramParametersComponent, c); - c.gridy++; - add(myWorkingDirectoryComponent, c); + protected void addComponents() { + add(myProgramParametersComponent); + add(myWorkingDirectoryComponent); + add(myEnvVariablesComponent); } protected void copyDialogCaption(final LabeledComponent component) { @@ -118,42 +118,40 @@ public class CommonProgramParametersPanel extends JPanel { component.getLabel().setLabelFor(rawCommandLineEditor.getTextField()); } - public String getProgramParametersLabel() { - return myProgramParametersComponent.getText(); - } - public void setProgramParametersLabel(String textWithMnemonic) { myProgramParametersComponent.setText(textWithMnemonic); copyDialogCaption(myProgramParametersComponent); } - public String getProgramParameters() { - return myProgramParametersComponent.getComponent().getText(); + public String getProgramParametersLabel() { + return myProgramParametersComponent.getText(); } - public void setProgramParameters(String text) { - myProgramParametersComponent.getComponent().setText(text); + public void setProgramParameters(String params) { + myProgramParametersComponent.getComponent().setText(params); } - public String getWorkingDirectory() { - return myWorkingDirectoryField.getText(); + public void setWorkingDirectory(String dir) { + myWorkingDirectoryField.setText(dir); } - public void setWorkingDirectory(String text) { - myWorkingDirectoryField.setText(text); - } - - public void setModuleContext(Module module) { - myModuleContext = module; + public void setModuleContext(Module moduleContext) { + myModuleContext = moduleContext; } public void applyTo(CommonProgramRunConfigurationParameters configuration) { - configuration.setProgramParameters(getProgramParameters()); - configuration.setWorkingDirectory(getWorkingDirectory()); + configuration.setProgramParameters(myProgramParametersComponent.getComponent().getText()); + configuration.setWorkingDirectory(myWorkingDirectoryField.getText()); + + configuration.setEnvs(myEnvVariablesComponent.getEnvs()); + configuration.setPassParentEnvs(myEnvVariablesComponent.isPassParentEnvs()); } public void reset(CommonProgramRunConfigurationParameters configuration) { setProgramParameters(configuration.getProgramParameters()); setWorkingDirectory(configuration.getWorkingDirectory()); + + myEnvVariablesComponent.setEnvs(configuration.getEnvs()); + myEnvVariablesComponent.setPassParentEnvs(configuration.isPassParentEnvs()); } } diff --git a/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersUtil.java b/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersUtil.java index b5a76dec77bc..8f13b5dcecf8 100644 --- a/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersUtil.java +++ b/platform/lang-impl/src/com/intellij/execution/util/ProgramParametersUtil.java @@ -26,6 +26,9 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.PathUtil; import org.jetbrains.annotations.Nullable; +import java.util.HashMap; +import java.util.Map; + public class ProgramParametersUtil { public static void configureConfiguration(SimpleProgramParameters parameters, CommonProgramRunConfigurationParameters configuration) { Project project = configuration.getProject(); @@ -44,6 +47,14 @@ public class ProgramParametersUtil { workingDirectory = baseDir.getPath() + "/" + workingDirectory; } parameters.setWorkingDirectory(workingDirectory); + + if (parameters.getEnv() != null) { + Map expanded = new HashMap(); + for (Map.Entry each : parameters.getEnv().entrySet()) { + expanded.put(each.getKey(), expandPath(each.getValue(), module, project)); + } + parameters.setEnv(expanded); + } } protected static String expandPath(String path, Module module, Project project) { diff --git a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java index 9118d48d6e60..ff8c534415be 100644 --- a/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java +++ b/plugins/junit/src/com/intellij/execution/junit/JUnitConfiguration.java @@ -155,6 +155,49 @@ public class JUnitConfiguration extends ModuleBasedConfiguration envs) { + myData.setEnvs(envs); + } + + public Map getEnvs() { + return myData.getEnvs(); + } + + public void setPassParentEnvs(boolean passParentEnvs) { + myData.PASS_PARENT_ENVS = passParentEnvs; + } + + public boolean isPassParentEnvs() { + return myData.PASS_PARENT_ENVS; + } + + public boolean isAlternativeJrePathEnabled() { + return ALTERNATIVE_JRE_PATH_ENABLED; + } + + public void setAlternativeJrePathEnabled(boolean enabled) { + this.ALTERNATIVE_JRE_PATH_ENABLED = enabled; + } + + public String getAlternativeJrePath() { + return ALTERNATIVE_JRE_PATH; + } + + public void setAlternativeJrePath(String path) { + this.ALTERNATIVE_JRE_PATH = path; + } + + public String getRunClass() { + final Data data = getPersistentData(); + return data.TEST_OBJECT != TEST_CLASS && data.TEST_OBJECT != TEST_METHOD ? null : data.getMainClassName(); + } + + public String getPackage() { + final Data data = getPersistentData(); + return data.TEST_OBJECT != TEST_PACKAGE ? null : data.getPackageName(); + } + + public void beClassConfiguration(final PsiClass testClass) { setMainClass(testClass); myData.TEST_OBJECT = TEST_CLASS; @@ -257,32 +300,6 @@ public class JUnitConfiguration extends ModuleBasedConfiguration - + @@ -171,7 +171,7 @@ - + @@ -183,13 +183,11 @@ - - - + - + @@ -200,15 +198,9 @@ - + - - - - - - diff --git a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java index 29f3cd527afe..7875537e6f70 100644 --- a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java +++ b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java @@ -18,7 +18,6 @@ package com.intellij.execution.junit2.configuration; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.configuration.BrowseModuleValueActionListener; -import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.execution.junit.JUnitConfiguration; import com.intellij.execution.junit.JUnitConfigurationType; import com.intellij.execution.junit.JUnitUtil; @@ -65,7 +64,6 @@ public class JUnitConfigurable extends SettingsEditor { private JPanel myWholePanel; private LabeledComponent myModule; private CommonJavaParametersPanel myCommonJavaParameters; - private EnvironmentVariablesComponent myEnvVariablesComponent; private JRadioButton myWholeProjectScope; private JRadioButton mySingleModuleScope; private JRadioButton myModuleWDScope; @@ -83,66 +81,6 @@ public class JUnitConfigurable extends SettingsEditor { private final BrowseModuleValueActionListener[] myBrowsers; private AlternativeJREPanel myAlternativeJREPanel; - public void applyEditorTo(final JUnitConfiguration configuration) { - myModel.apply(getModuleSelector().getModule(), configuration); - applyHelpersTo(configuration); - final JUnitConfiguration.Data data = configuration.getPersistentData(); - if (myWholeProjectScope.isSelected()) { - data.setScope(TestSearchScope.WHOLE_PROJECT); - } - else if (mySingleModuleScope.isSelected()) { - data.setScope(TestSearchScope.SINGLE_MODULE); - } - else if (myModuleWDScope.isSelected()) { - data.setScope(TestSearchScope.MODULE_WITH_DEPENDENCIES); - } - configuration.setAlternativeJrePath(myAlternativeJREPanel.getPath()); - configuration.setAlternativeJrePathEnabled(myAlternativeJREPanel.isPathEnabled()); - - configuration.getPersistentData().setEnvs(myEnvVariablesComponent.getEnvs()); - configuration.getPersistentData().PASS_PARENT_ENVS = myEnvVariablesComponent.isPassParentEnvs(); - - myCommonJavaParameters.setProgramParametersLabel(ExecutionBundle.message("junit.configuration.test.runner.parameters.label")); - } - - public void resetEditorFrom(final JUnitConfiguration configuration) { - myModel.reset(configuration); - myCommonJavaParameters.reset(configuration); - getModuleSelector().reset(configuration); - final TestSearchScope scope = configuration.getPersistentData().getScope(); - if (scope == TestSearchScope.SINGLE_MODULE) { - mySingleModuleScope.setSelected(true); - } - else if (scope == TestSearchScope.MODULE_WITH_DEPENDENCIES) { - myModuleWDScope.setSelected(true); - } - else { - myWholeProjectScope.setSelected(true); - } - myAlternativeJREPanel.init(configuration.getAlternativeJrePath(), configuration.isAlternativeJrePathEnabled()); - - myEnvVariablesComponent.setEnvs(configuration.getPersistentData().getEnvs()); - myEnvVariablesComponent.setPassParentEnvs(configuration.getPersistentData().PASS_PARENT_ENVS); - } - - private void changePanel () { - if (myAllInPackageButton.isSelected()) { - myPackagePanel.setVisible(true); - myClass.setVisible(false); - myMethod.setVisible(false); - } - else if (myClassButton.isSelected()){ - myPackagePanel.setVisible(false); - myClass.setVisible(true); - myMethod.setVisible(false); - } - else { - myPackagePanel.setVisible(false); - myClass.setVisible(true); - myMethod.setVisible(true); - } - } - public JUnitConfigurable(final Project project) { myModel = new JUnitConfigurationModel(project); myModuleSelector = new ConfigurationModuleSelector(project, getModulesComponent()); @@ -189,8 +127,65 @@ public class JUnitConfigurable extends SettingsEditor { } }); + myCommonJavaParameters.setProgramParametersLabel(ExecutionBundle.message("junit.configuration.test.runner.parameters.label")); } + public void applyEditorTo(final JUnitConfiguration configuration) { + myModel.apply(getModuleSelector().getModule(), configuration); + applyHelpersTo(configuration); + final JUnitConfiguration.Data data = configuration.getPersistentData(); + if (myWholeProjectScope.isSelected()) { + data.setScope(TestSearchScope.WHOLE_PROJECT); + } + else if (mySingleModuleScope.isSelected()) { + data.setScope(TestSearchScope.SINGLE_MODULE); + } + else if (myModuleWDScope.isSelected()) { + data.setScope(TestSearchScope.MODULE_WITH_DEPENDENCIES); + } + configuration.setAlternativeJrePath(myAlternativeJREPanel.getPath()); + configuration.setAlternativeJrePathEnabled(myAlternativeJREPanel.isPathEnabled()); + + myCommonJavaParameters.applyTo(configuration); + } + + public void resetEditorFrom(final JUnitConfiguration configuration) { + myModel.reset(configuration); + myCommonJavaParameters.reset(configuration); + getModuleSelector().reset(configuration); + final TestSearchScope scope = configuration.getPersistentData().getScope(); + if (scope == TestSearchScope.SINGLE_MODULE) { + mySingleModuleScope.setSelected(true); + } + else if (scope == TestSearchScope.MODULE_WITH_DEPENDENCIES) { + myModuleWDScope.setSelected(true); + } + else { + myWholeProjectScope.setSelected(true); + } + myAlternativeJREPanel.init(configuration.getAlternativeJrePath(), configuration.isAlternativeJrePathEnabled()); + + } + + private void changePanel () { + if (myAllInPackageButton.isSelected()) { + myPackagePanel.setVisible(true); + myClass.setVisible(false); + myMethod.setVisible(false); + } + else if (myClassButton.isSelected()){ + myPackagePanel.setVisible(false); + myClass.setVisible(true); + myMethod.setVisible(false); + } + else { + myPackagePanel.setVisible(false); + myClass.setVisible(true); + myMethod.setVisible(true); + } + } + + public JComboBox getModulesComponent() { return myModule.getComponent(); } public ConfigurationModuleSelector getModuleSelector() { return myModuleSelector; diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java index d5ff224c5aff..6b6e3bba1835 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfiguration.java @@ -191,6 +191,22 @@ public class TestNGConfiguration extends ModuleBasedConfiguration envs) { + data.setEnvs(envs); + } + + public Map getEnvs() { + return data.getEnvs(); + } + + public void setPassParentEnvs(boolean passParentEnvs) { + data.PASS_PARENT_ENVS = passParentEnvs; + } + + public boolean isPassParentEnvs() { + return data.PASS_PARENT_ENVS; + } + public boolean isAlternativeJrePathEnabled() { return ALTERNATIVE_JRE_PATH_ENABLED; } diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form index 3fe747cfff27..11e6026fe996 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.form @@ -152,32 +152,17 @@ - - - - - - - - - + + - - - - - - - - - + @@ -185,19 +170,22 @@ - - + - + + + + + diff --git a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java index 1a6b8effbc3f..3f0249400e12 100644 --- a/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java +++ b/plugins/testng/src/com/theoryinpractice/testng/configuration/TestNGConfigurationEditor.java @@ -25,7 +25,6 @@ package com.theoryinpractice.testng.configuration; import com.intellij.execution.ExecutionBundle; import com.intellij.execution.JavaExecutionUtil; import com.intellij.execution.configuration.BrowseModuleValueActionListener; -import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.execution.testframework.TestSearchScope; import com.intellij.execution.ui.AlternativeJREPanel; import com.intellij.execution.ui.CommonJavaParametersPanel; @@ -68,7 +67,6 @@ public class TestNGConfigurationEditor extends SettingsEditor classField; - private EnvironmentVariablesComponent envVariablesComponent; private LabeledComponent moduleClasspath; private AlternativeJREPanel alternateJDK; private final ConfigurationModuleSelector moduleSelector; @@ -227,8 +225,6 @@ public class TestNGConfigurationEditor extends SettingsEditor(); propertiesList.addAll(data.TEST_PROPERTIES.entrySet()); propertiesTableModel.setParameterList(propertiesList); @@ -268,9 +264,6 @@ public class TestNGConfigurationEditor extends SettingsEditor