# HG changeset patch # User timkelly # Date 1284757329 18000 # Node ID 0d6ae58214f30f2927b14d4467ae0f10837905eb # Parent 2a4e35146637affda5fce750afc825f37c85fed5 fix bug 11991. sorting support for sbsv2 build configs diff -r 2a4e35146637 -r 0d6ae58214f3 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java Fri Sep 17 13:35:34 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/api/sdk/SBSv2Utils.java Fri Sep 17 16:02:09 2010 -0500 @@ -236,16 +236,7 @@ } return sbsPath != null ? sbsPath : new Path(sbsScriptName); // dummy } - - private static List sortContexts(List contexts){ - Collections.sort(contexts, new Comparator() { - public int compare(ISymbianBuildContext o1, ISymbianBuildContext o2) { - return o2.getDisplayString().compareTo(o1.getDisplayString()); - } - }); - - return contexts; - } + private static boolean isSBSv1Supported() { if (HostOS.IS_UNIX){ diff -r 2a4e35146637 -r 0d6ae58214f3 core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java --- a/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java Fri Sep 17 13:35:34 2010 -0500 +++ b/core/com.nokia.carbide.cpp.sdk.core/src/com/nokia/carbide/cpp/internal/sdk/core/model/SBSv2BuildInfo.java Fri Sep 17 16:02:09 2010 -0500 @@ -15,6 +15,8 @@ import java.text.MessageFormat; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -66,7 +68,7 @@ public List getAllBuildConfigurations() { // This really only applies to SBSv1. We never return the full list of configs for SBSv2, only the filtered ones - return sbsv2FilteredContexts; + return sortContexts(sbsv2FilteredContexts); } public void clearDataFromBuildCache(){ @@ -120,7 +122,9 @@ } } - return sbsv2FilteredContexts; + + + return sortContexts(sbsv2FilteredContexts); } private void initSBSv2BuildContextList(List allowedConfigs) throws SBSv2MinimumVersionException { @@ -323,5 +327,34 @@ public void setPreviouslyScanned(boolean wasScanned) { this.wasScanned = wasScanned; } + + private static List sortContexts(List contexts){ + Collections.sort(contexts, new Comparator() { + + public int compare(ISymbianBuildContext o1, ISymbianBuildContext o2) { + + ISBSv2BuildContext sbs1 = (ISBSv2BuildContext)o1; + ISBSv2BuildContext sbs2 = (ISBSv2BuildContext)o2; + + //String[] sbs1Prefix = sbs1.getSBSv2Alias().split("_"); + String[] sbs2Prefix = sbs2.getSBSv2Alias().split("_"); + + if (sbs1.getSBSv2Alias().length() == sbs2.getSBSv2Alias().length()){ + return sbs1.getSBSv2Alias().compareTo(sbs2.getSBSv2Alias()); + } + + if (sbs2Prefix.length > 0){ + if (sbs1.getSBSv2Alias().startsWith(sbs2Prefix[0])){ + return -1; + } + } + + + return sbs1.getSBSv2Alias().compareTo(sbs2.getSBSv2Alias()); + } + }); + + return contexts; + } }