mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
reuse ModulesComboBox in ConfigurationModuleSelector
This commit is contained in:
@@ -64,7 +64,7 @@
|
||||
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<componentClass value="javax.swing.JComboBox"/>
|
||||
<componentClass value="com.intellij.application.options.ModulesComboBox"/>
|
||||
<labelLocation value="West"/>
|
||||
<text resource-bundle="messages/ExecutionBundle" key="application.configuration.use.classpath.and.jdk.of.module.label"/>
|
||||
</properties>
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.execution.applet;
|
||||
|
||||
import com.intellij.application.options.ModulesComboBox;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.impl.CheckableRunConfigurationEditor;
|
||||
import com.intellij.execution.ui.AlternativeJREPanel;
|
||||
@@ -57,7 +58,7 @@ public class AppletConfigurable extends SettingsEditor<AppletConfiguration> impl
|
||||
private TextFieldWithBrowseButton myHtmlFile;
|
||||
private JTextField myWidth;
|
||||
private JTextField myHeight;
|
||||
private LabeledComponent<JComboBox> myModule;
|
||||
private LabeledComponent<ModulesComboBox> myModule;
|
||||
private JPanel myTablePlace;
|
||||
private JBLabel myHtmlFileLabel;
|
||||
private JBLabel myClassNameLabel;
|
||||
@@ -175,7 +176,7 @@ public class AppletConfigurable extends SettingsEditor<AppletConfiguration> impl
|
||||
myTable.scrollRectToVisible(myTable.getCellRect(index, 0, true));
|
||||
}
|
||||
|
||||
private JComboBox getModuleComponent() {
|
||||
private ModulesComboBox getModuleComponent() {
|
||||
return myModule.getComponent();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<componentClass value="javax.swing.JComboBox"/>
|
||||
<componentClass value="com.intellij.application.options.ModulesComboBox"/>
|
||||
<labelLocation value="West"/>
|
||||
<text resource-bundle="messages/ExecutionBundle" key="application.configuration.use.classpath.and.jdk.of.module.label"/>
|
||||
</properties>
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.execution.application;
|
||||
|
||||
import com.intellij.application.options.ModulesComboBox;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.JavaExecutionUtil;
|
||||
import com.intellij.execution.configurations.ConfigurationUtil;
|
||||
@@ -44,7 +45,7 @@ import java.awt.event.ActionListener;
|
||||
public class ApplicationConfigurable extends SettingsEditor<ApplicationConfiguration> implements PanelWithAnchor {
|
||||
private CommonJavaParametersPanel myCommonProgramParameters;
|
||||
private LabeledComponent<EditorTextFieldWithBrowseButton> myMainClass;
|
||||
private LabeledComponent<JComboBox> myModule;
|
||||
private LabeledComponent<ModulesComboBox> myModule;
|
||||
private JPanel myWholePanel;
|
||||
|
||||
private final ConfigurationModuleSelector myModuleSelector;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
*/
|
||||
package com.intellij.execution.remote;
|
||||
|
||||
import com.intellij.application.options.ModulesComboBox;
|
||||
import com.intellij.execution.ExecutionBundle;
|
||||
import com.intellij.execution.configurations.RemoteConnection;
|
||||
import com.intellij.execution.ui.ConfigurationArgumentsHelpArea;
|
||||
@@ -52,7 +53,7 @@ public class RemoteConfigurable extends SettingsEditor<RemoteConfiguration> {
|
||||
private ConfigurationArgumentsHelpArea myHelpArea;
|
||||
@NonNls private ConfigurationArgumentsHelpArea myJDK13HelpArea;
|
||||
private ConfigurationArgumentsHelpArea myJDK14HelpArea;
|
||||
private LabeledComponent<JComboBox> myModule;
|
||||
private LabeledComponent<ModulesComboBox> myModule;
|
||||
private String myHostName = "";
|
||||
@NonNls
|
||||
protected static final String LOCALHOST = "localhost";
|
||||
|
||||
+4
-3
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.execution.testDiscovery;
|
||||
|
||||
import com.intellij.application.options.ModulesComboBox;
|
||||
import com.intellij.execution.MethodBrowser;
|
||||
import com.intellij.execution.ui.AlternativeJREPanel;
|
||||
import com.intellij.execution.ui.ClassBrowser;
|
||||
@@ -51,7 +52,7 @@ public class TestDiscoveryConfigurable<T extends TestDiscoveryConfiguration> ext
|
||||
private final ConfigurationModuleSelector myModuleSelector;
|
||||
// Fields
|
||||
private JPanel myWholePanel = new JPanel(new BorderLayout());
|
||||
private LabeledComponent<JComboBox> myModule = new LabeledComponent<JComboBox>();
|
||||
private LabeledComponent<ModulesComboBox> myModule = new LabeledComponent<ModulesComboBox>();
|
||||
private CommonJavaParametersPanel myCommonJavaParameters = new CommonJavaParametersPanel();
|
||||
private AlternativeJREPanel myAlternativeJREPanel = new AlternativeJREPanel();
|
||||
private LabeledComponent<EditorTextFieldWithBrowseButton> myClass = new LabeledComponent<EditorTextFieldWithBrowseButton>();
|
||||
@@ -65,7 +66,7 @@ public class TestDiscoveryConfigurable<T extends TestDiscoveryConfiguration> ext
|
||||
public TestDiscoveryConfigurable(final Project project) {
|
||||
myModule.setText("Use classpath of");
|
||||
myModule.setLabelLocation(BorderLayout.WEST);
|
||||
myModule.setComponent(new JComboBox());
|
||||
myModule.setComponent(new ModulesComboBox());
|
||||
myModuleSelector = new ConfigurationModuleSelector(project, getModulesComponent());
|
||||
myCommonJavaParameters.setModuleContext(myModuleSelector.getModule());
|
||||
myCommonJavaParameters.setHasModuleMacro();
|
||||
@@ -225,7 +226,7 @@ public class TestDiscoveryConfigurable<T extends TestDiscoveryConfiguration> ext
|
||||
updateComponents();
|
||||
}
|
||||
|
||||
public JComboBox getModulesComponent() {
|
||||
public ModulesComboBox getModulesComponent() {
|
||||
return myModule.getComponent();
|
||||
}
|
||||
|
||||
|
||||
+34
-37
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.intellij.execution.ui;
|
||||
|
||||
import com.intellij.application.options.ModuleListCellRenderer;
|
||||
import com.intellij.application.options.ModulesComboBox;
|
||||
import com.intellij.execution.configurations.JavaRunConfigurationModule;
|
||||
import com.intellij.execution.configurations.ModuleBasedConfiguration;
|
||||
import com.intellij.openapi.module.Module;
|
||||
@@ -22,38 +24,42 @@ import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.module.ModuleType;
|
||||
import com.intellij.openapi.module.ModuleTypeManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesAlphaComparator;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.ui.ComboboxSpeedSearch;
|
||||
import com.intellij.ui.ListCellRendererWrapper;
|
||||
import com.intellij.ui.SortedComboBoxModel;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public class ConfigurationModuleSelector {
|
||||
|
||||
private final String myNoModule;
|
||||
private final Project myProject;
|
||||
private final JComboBox myModulesList;
|
||||
private final SortedComboBoxModel<Object> myModules = new SortedComboBoxModel<Object>(new Comparator<Object>() {
|
||||
public int compare(final Object module, final Object module1) {
|
||||
if (module instanceof Module && module1 instanceof Module){
|
||||
return ((Module)module).getName().compareToIgnoreCase(((Module)module1).getName());
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #ConfigurationModuleSelector(Project, ModulesComboBox)} instead
|
||||
*/
|
||||
public ConfigurationModuleSelector(final Project project, final JComboBox modulesList) {
|
||||
this(project, modulesList, "<no module>");
|
||||
}
|
||||
|
||||
public ConfigurationModuleSelector(final Project project, final JComboBox modulesList, String noModule) {
|
||||
myNoModule = noModule;
|
||||
public ConfigurationModuleSelector(Project project, ModulesComboBox modulesComboBox) {
|
||||
this(project, modulesComboBox, "<no module>");
|
||||
}
|
||||
|
||||
public ConfigurationModuleSelector(Project project, ModulesComboBox modulesComboBox, String noModule) {
|
||||
myProject = project;
|
||||
myModulesList = modulesComboBox;
|
||||
modulesComboBox.allowEmptySelection(noModule);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated use {@link #ConfigurationModuleSelector(Project, ModulesComboBox, String)} instead
|
||||
*/
|
||||
public ConfigurationModuleSelector(final Project project, final JComboBox modulesList, final String noModule) {
|
||||
myProject = project;
|
||||
myModulesList = modulesList;
|
||||
new ComboboxSpeedSearch(modulesList){
|
||||
@@ -61,25 +67,13 @@ public class ConfigurationModuleSelector {
|
||||
if (element instanceof Module){
|
||||
return ((Module)element).getName();
|
||||
} else if (element == null) {
|
||||
return myNoModule;
|
||||
return noModule;
|
||||
}
|
||||
return super.getElementText(element);
|
||||
}
|
||||
};
|
||||
myModulesList.setModel(myModules);
|
||||
myModulesList.setRenderer(new ListCellRendererWrapper() {
|
||||
@Override
|
||||
public void customize(final JList list, final Object value, final int index, final boolean selected, final boolean hasFocus) {
|
||||
if (value instanceof Module) {
|
||||
final Module module = (Module)value;
|
||||
setIcon(ModuleType.get(module).getIcon());
|
||||
setText(module.getName());
|
||||
}
|
||||
else if (value == null) {
|
||||
setText(myNoModule);
|
||||
}
|
||||
}
|
||||
});
|
||||
myModulesList.setModel(new SortedComboBoxModel<Module>(ModulesAlphaComparator.INSTANCE));
|
||||
myModulesList.setRenderer(new ModuleListCellRenderer(noModule));
|
||||
}
|
||||
|
||||
public void applyTo(final ModuleBasedConfiguration configurationModule) {
|
||||
@@ -93,7 +87,7 @@ public class ConfigurationModuleSelector {
|
||||
if (isModuleAccepted(module)) list.add(module);
|
||||
}
|
||||
setModules(list);
|
||||
myModules.setSelectedItem(configuration.getConfigurationModule().getModule());
|
||||
myModulesList.setSelectedItem(configuration.getConfigurationModule().getModule());
|
||||
}
|
||||
|
||||
public boolean isModuleAccepted(final Module module) {
|
||||
@@ -106,20 +100,23 @@ public class ConfigurationModuleSelector {
|
||||
|
||||
public JavaRunConfigurationModule getConfigurationModule() {
|
||||
final JavaRunConfigurationModule configurationModule = new JavaRunConfigurationModule(getProject(), false);
|
||||
configurationModule.setModule((Module)myModules.getSelectedItem());
|
||||
configurationModule.setModule(getModule());
|
||||
return configurationModule;
|
||||
}
|
||||
|
||||
private void setModules(final Collection<Module> modules) {
|
||||
myModules.clear();
|
||||
myModules.add(null);
|
||||
for (Module module : modules) {
|
||||
myModules.add(module);
|
||||
if (myModulesList instanceof ModulesComboBox) {
|
||||
((ModulesComboBox)myModulesList).setModules(modules);
|
||||
}
|
||||
else {
|
||||
SortedComboBoxModel<Module> model = (SortedComboBoxModel<Module>)myModulesList.getModel();
|
||||
model.setAll(modules);
|
||||
model.add(null);
|
||||
}
|
||||
}
|
||||
|
||||
public Module getModule() {
|
||||
return (Module)myModules.getSelectedItem();
|
||||
return (Module)myModulesList.getSelectedItem();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -128,7 +125,7 @@ public class ConfigurationModuleSelector {
|
||||
}
|
||||
|
||||
public String getModuleName() {
|
||||
final Module module = (Module)myModules.getSelectedItem();
|
||||
final Module module = getModule();
|
||||
return module == null ? "" : module.getName();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user