diff --git a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.form b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.form
index 4f14c055a8b1..4d422a7538c7 100644
--- a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.form
+++ b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.form
@@ -160,7 +160,7 @@
-
+
diff --git a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.java b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.java
index 352a4ba424e4..b364546d6af5 100644
--- a/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.java
+++ b/java/execution/impl/src/com/intellij/execution/remote/RemoteConfigurable.java
@@ -20,7 +20,7 @@
*/
package com.intellij.execution.remote;
-import com.intellij.application.options.ModulesComboBox;
+import com.intellij.application.options.ModuleDescriptionsComboBox;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.configurations.RemoteConnection;
import com.intellij.execution.ui.ConfigurationArgumentsHelpArea;
@@ -53,7 +53,7 @@ public class RemoteConfigurable extends SettingsEditor {
private ConfigurationArgumentsHelpArea myHelpArea;
@NonNls private ConfigurationArgumentsHelpArea myJDK13HelpArea;
private ConfigurationArgumentsHelpArea myJDK14HelpArea;
- private LabeledComponent myModule;
+ private LabeledComponent myModule;
private String myHostName = "";
@NonNls
protected static final String LOCALHOST = "localhost";
@@ -128,8 +128,9 @@ public class RemoteConfigurable extends SettingsEditor {
};
myAddressField.addFocusListener(fieldFocusListener);
myPortField.addFocusListener(fieldFocusListener);
-
- myModuleSelector = new ConfigurationModuleSelector(project, myModule.getComponent(), "");
+
+ myModule.getComponent().allowEmptySelection("");
+ myModuleSelector = new ConfigurationModuleSelector(project, myModule.getComponent());
}
public void applyEditorTo(@NotNull final RemoteConfiguration configuration) throws ConfigurationException {
diff --git a/java/execution/impl/src/com/intellij/execution/ui/ConfigurationModuleSelector.java b/java/execution/impl/src/com/intellij/execution/ui/ConfigurationModuleSelector.java
index 5f62966edb0b..243d67511f28 100644
--- a/java/execution/impl/src/com/intellij/execution/ui/ConfigurationModuleSelector.java
+++ b/java/execution/impl/src/com/intellij/execution/ui/ConfigurationModuleSelector.java
@@ -37,6 +37,7 @@ import java.util.Collection;
import java.util.List;
public class ConfigurationModuleSelector {
+ public static final String NO_MODULE_TEXT = "";
private final Project myProject;
/** this field is {@code null} if and only if {@link #myModulesList} is not null */
private final ModuleDescriptionsComboBox myModulesDescriptionsComboBox;
@@ -47,17 +48,22 @@ public class ConfigurationModuleSelector {
* @deprecated use {@link #ConfigurationModuleSelector(Project, ModulesComboBox)} instead
*/
public ConfigurationModuleSelector(final Project project, final JComboBox modulesList) {
- this(project, modulesList, "");
+ this(project, modulesList, NO_MODULE_TEXT);
}
public ConfigurationModuleSelector(Project project, ModulesComboBox modulesComboBox) {
- this(project, modulesComboBox, "");
+ this(project, modulesComboBox, NO_MODULE_TEXT);
}
public ConfigurationModuleSelector(Project project, ModuleDescriptionsComboBox modulesDescriptionsComboBox) {
+ this(project, modulesDescriptionsComboBox, NO_MODULE_TEXT);
+ }
+
+ public ConfigurationModuleSelector(Project project, ModuleDescriptionsComboBox modulesDescriptionsComboBox, String emptySelectionText) {
myProject = project;
myModulesDescriptionsComboBox = modulesDescriptionsComboBox;
myModulesList = null;
+ modulesDescriptionsComboBox.allowEmptySelection(emptySelectionText);
}
public ConfigurationModuleSelector(Project project, ModulesComboBox modulesComboBox, String noModule) {
diff --git a/java/execution/impl/src/com/intellij/execution/ui/DefaultJreSelector.kt b/java/execution/impl/src/com/intellij/execution/ui/DefaultJreSelector.kt
index feb3b6658ccc..b5a599b5b091 100644
--- a/java/execution/impl/src/com/intellij/execution/ui/DefaultJreSelector.kt
+++ b/java/execution/impl/src/com/intellij/execution/ui/DefaultJreSelector.kt
@@ -46,6 +46,10 @@ abstract class DefaultJreSelector {
fun fromModuleDependencies(moduleComboBox: ModulesComboBox, productionOnly: Boolean): DefaultJreSelector
= SdkFromModuleDependencies(moduleComboBox, ModulesComboBox::getSelectedModule, {productionOnly})
+ @JvmStatic
+ fun fromModuleDependencies(moduleComboBox: ModuleDescriptionsComboBox, productionOnly: Boolean): DefaultJreSelector
+ = SdkFromModuleDependencies(moduleComboBox, ModuleDescriptionsComboBox::getSelectedModule, {productionOnly})
+
@JvmStatic
fun fromSourceRootsDependencies(moduleComboBox: ModulesComboBox, classSelector: EditorTextFieldWithBrowseButton): DefaultJreSelector
= SdkFromSourceRootDependencies(moduleComboBox, ModulesComboBox::getSelectedModule, classSelector)
diff --git a/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java b/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java
index b7aec57fea50..deefe1037aae 100644
--- a/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java
+++ b/java/java-tests/testSrc/com/intellij/java/execution/ConfigurationsTest.java
@@ -15,6 +15,7 @@
*/
package com.intellij.java.execution;
+import com.intellij.application.options.ModuleDescriptionsComboBox;
import com.intellij.execution.CantRunException;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.RunConfigurationConfigurableAdapter;
@@ -62,7 +63,6 @@ import com.intellij.util.containers.ContainerUtilRt;
import junit.framework.TestCase;
import org.jdom.Element;
-import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
@@ -127,12 +127,12 @@ public class ConfigurationsTest extends BaseConfigurationTestCase {
JUnitConfiguration configuration = createConfiguration(findTestA(module2));
editor.getComponent(); // To get all the watchers installed.
Configurable configurable = new RunConfigurationConfigurableAdapter(editor, configuration);
- JComboBox comboBox = editor.getModulesComponent();
+ ModuleDescriptionsComboBox comboBox = editor.getModulesComponent();
configurable.reset();
assertFalse(configurable.isModified());
- assertEquals(module2.getName(), ((Module)comboBox.getSelectedItem()).getName());
+ assertEquals(module2.getName(), comboBox.getSelectedModuleName());
assertEquals(ModuleManager.getInstance(myProject).getModules().length + 1, comboBox.getModel().getSize()); //no module
- comboBox.setSelectedItem(module1);
+ comboBox.setSelectedModule(module1);
assertTrue(configurable.isModified());
configurable.apply();
assertFalse(configurable.isModified());
diff --git a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.form b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.form
index 1d9a7e53c6dc..9d1d2f305c3f 100644
--- a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.form
+++ b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.form
@@ -62,7 +62,7 @@
-
+
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 081753048910..3fe79c8654ef 100644
--- a/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java
+++ b/plugins/junit/src/com/intellij/execution/junit2/configuration/JUnitConfigurable.java
@@ -16,7 +16,7 @@
package com.intellij.execution.junit2.configuration;
-import com.intellij.application.options.ModulesComboBox;
+import com.intellij.application.options.ModuleDescriptionsComboBox;
import com.intellij.execution.ExecutionBundle;
import com.intellij.execution.MethodBrowser;
import com.intellij.execution.configuration.BrowseModuleValueActionListener;
@@ -94,7 +94,7 @@ public class JUnitConfigurable extends SettingsEdi
private LabeledComponent myCategory;
// Fields
private JPanel myWholePanel;
- private LabeledComponent myModule;
+ private LabeledComponent myModule;
private CommonJavaParametersPanel myCommonJavaParameters;
private JRadioButton myWholeProjectScope;
private JRadioButton mySingleModuleScope;
@@ -445,7 +445,7 @@ public class JUnitConfigurable extends SettingsEdi
return new DefaultComboBoxModel(RepeatCount.ONCE.equals(myRepeatCb.getSelectedItem()) ? FORK_MODE : FORK_MODE_ALL);
}
- public ModulesComboBox getModulesComponent() {
+ public ModuleDescriptionsComboBox getModulesComponent() {
return myModule.getComponent();
}