From b1ca11b24bb1081b5dbed284d6dbf2ad2fd51a30 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Fri, 1 Mar 2013 09:55:28 +0100 Subject: [PATCH] sort non-primary modules alphabetically in module-aware project configurables (PY-9017) --- .../platform/ModuleAttachProcessor.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java b/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java index a5507687795e..4e6caaa0174f 100644 --- a/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java +++ b/platform/lang-impl/src/com/intellij/platform/ModuleAttachProcessor.java @@ -44,9 +44,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; /** * @author yole @@ -159,6 +157,9 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { @Nullable public static Module getPrimaryModule(Project project) { + if (!canAttachToProject()) { + return null; + } for (Module module : ModuleManager.getInstance(project).getModules()) { final VirtualFile[] roots = ModuleRootManager.getInstance(module).getContentRoots(); for (VirtualFile root : roots) { @@ -173,15 +174,21 @@ public class ModuleAttachProcessor extends ProjectAttachProcessor { public static List getSortedModules(Project project) { List result = new ArrayList(); final Module primaryModule = getPrimaryModule(project); - if (primaryModule != null) { - result.add(primaryModule); - } final Module[] modules = ModuleManager.getInstance(project).getModules(); for (Module module : modules) { if (module != primaryModule) { result.add(module); } } + Collections.sort(result, new Comparator() { + @Override + public int compare(Module module, Module module2) { + return module.getName().compareTo(module2.getName()); + } + }); + if (primaryModule != null) { + result.add(0, primaryModule); + } return result; } }