IDEA-66257: Artifacts: new modules are not sorted in combobox of "Create Jar from Modules" dialog

This commit is contained in:
nik
2011-03-09 09:46:33 +03:00
parent a05a2bad5d
commit 28dc9bdc65
3 changed files with 7 additions and 4 deletions
@@ -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);
}
@@ -25,6 +25,8 @@ import java.util.Comparator;
* @author 2003
*/
public class ModulesAlphaComparator implements Comparator<Module>{
public static ModulesAlphaComparator INSTANCE = new ModulesAlphaComparator();
public int compare(Module module1, Module module2) {
final String name1 = module1.getName();
final String name2 = module2.getName();
@@ -73,10 +73,8 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change
private final ProjectConfigurable myProjectConfigurable;
private final List<ModuleEditor> myModuleEditors = new ArrayList<ModuleEditor>();
private final Comparator<ModuleEditor> myModuleEditorComparator = new Comparator<ModuleEditor>() {
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"})