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(); }