From dc7343986c10f344a4fa203990489abf2bbf372b Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Wed, 13 Apr 2011 15:28:50 +0400 Subject: [PATCH] IDEA-63663 Sort run configurations alphabetically if clean checkout (no workspace.xml were found) [r=ann] --- .../execution/impl/RunManagerImpl.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java index ceb8b8d985bc..361ccb059d16 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunManagerImpl.java @@ -287,19 +287,28 @@ public class RunManagerImpl extends RunManagerEx implements JDOMExternalizable, @Override public Collection getSortedConfigurations() { - if (!myOrdered && !myOrder.isEmpty()) { //compatibility + if (!myOrdered) { //compatibility final HashMap settings = - new HashMap(myConfigurations); //sort shared and local configurations + new HashMap(myConfigurations); //sort shared and local configurations myConfigurations.clear(); + final List order = new ArrayList(settings.keySet()); - Collections.sort(order, new Comparator() { - public int compare(final String o1, final String o2) { - return myOrder.indexOf(o1) - myOrder.indexOf(o2); - } - }); - for (String configName : order) { + if (myOrder.isEmpty()) { + // IDEA-63663 Sort run configurations alphabetically if clean checkout + Collections.sort(order); + } + else { + Collections.sort(order, new Comparator() { + public int compare(final String o1, final String o2) { + return myOrder.indexOf(o1) - myOrder.indexOf(o2); + } + }); + } + + for (final String configName : order) { myConfigurations.put(configName, settings.get(configName)); } + myOrdered = true; } return myConfigurations.values();