From 28dc9bdc6521b027fb39b9351aa8e53e3533ce05 Mon Sep 17 00:00:00 2001 From: nik Date: Sat, 5 Mar 2011 18:23:55 +0300 Subject: [PATCH] IDEA-66257: Artifacts: new modules are not sorted in combobox of "Create Jar from Modules" dialog --- .../impl/artifacts/JarArtifactFromModulesDialog.java | 5 ++++- .../roots/ui/configuration/ModulesAlphaComparator.java | 2 ++ .../openapi/roots/ui/configuration/ModulesConfigurator.java | 4 +--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/JarArtifactFromModulesDialog.java b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/JarArtifactFromModulesDialog.java index 5be9eb25f1a3..fab2d0833a6b 100644 --- a/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/JarArtifactFromModulesDialog.java +++ b/java/compiler/impl/src/com/intellij/packaging/impl/artifacts/JarArtifactFromModulesDialog.java @@ -17,6 +17,7 @@ package com.intellij.packaging.impl.artifacts; import com.intellij.openapi.module.Module; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ui.configuration.ModulesAlphaComparator; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.TextFieldWithBrowseButton; import com.intellij.openapi.util.io.FileUtil; @@ -32,6 +33,7 @@ import javax.swing.event.DocumentEvent; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.Arrays; /** * @author nik @@ -74,7 +76,8 @@ public class JarArtifactFromModulesDialog extends DialogWrapper { updateManifestDirField(); myManifestDirField.addBrowseFolderListener(null, null, project, ManifestFileUtil.createDescriptorForManifestDirectory()); - final Module[] modules = context.getModulesProvider().getModules(); + final Module[] modules = context.getModulesProvider().getModules().clone(); + Arrays.sort(modules, ModulesAlphaComparator.INSTANCE); if (modules.length > 1) { myModuleComboBox.addItem(null); } diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesAlphaComparator.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesAlphaComparator.java index b3bb01f50a50..9bef5a71428a 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesAlphaComparator.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesAlphaComparator.java @@ -25,6 +25,8 @@ import java.util.Comparator; * @author 2003 */ public class ModulesAlphaComparator implements Comparator{ + public static ModulesAlphaComparator INSTANCE = new ModulesAlphaComparator(); + public int compare(Module module1, Module module2) { final String name1 = module1.getName(); final String name2 = module2.getName(); diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java index daf020a0615e..d36cabf4eb0d 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java @@ -73,10 +73,8 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change private final ProjectConfigurable myProjectConfigurable; private final List myModuleEditors = new ArrayList(); private final Comparator myModuleEditorComparator = new Comparator() { - final ModulesAlphaComparator myModulesComparator = new ModulesAlphaComparator(); - public int compare(ModuleEditor editor1, ModuleEditor editor2) { - return myModulesComparator.compare(editor1.getModule(), editor2.getModule()); + return ModulesAlphaComparator.INSTANCE.compare(editor1.getModule(), editor2.getModule()); } @SuppressWarnings({"EqualsWhichDoesntCheckParameterClass"})