+ * return an ordered list of database sources suitable for using in a GUI element\r
+ */\r
+ public String[] getOrderedSupportedSources() {\r
+ String[] srcs = this.getSupportedDb();\r
+ ArrayList dassrc = new ArrayList(),\r
+ nondas=new ArrayList();\r
+ for (int i=0;i<srcs.length;i++)\r
+ {\r
+ String nm = getSourceProxy(srcs[i]).getDbName();\r
+ if (getSourceProxy(srcs[i]) instanceof jalview.ws.dbsources.DasSequenceSource)\r
+ {\r
+ if (nm.startsWith("das:"))\r
+ {\r
+ nm = nm.substring(4);\r
+ }\r
+ dassrc.add(new String[] { srcs[i], nm.toUpperCase()} );\r
+ } else {\r
+ nondas.add(new String[] { srcs[i], nm.toUpperCase()} );\r
+ }\r
+ }\r
+ Object[] sorted = nondas.toArray();\r
+ String[] tosort = new String[sorted.length];\r
+ nondas.clear();\r
+ for (int j=0;j<sorted.length;j++)\r
+ {\r
+ tosort[j] = ((String[]) sorted[j])[1];\r
+ }\r
+ jalview.util.QuickSort.sort(tosort, sorted);\r
+ int i=0;\r
+ for (int j=sorted.length-1;j>=0; j--,i++)\r
+ {\r
+ srcs[i] = ((String[]) sorted[j])[0];\r
+ sorted[j] = null;\r
+ }\r
+\r
+ sorted = dassrc.toArray();\r
+ tosort = new String[sorted.length];\r
+ dassrc.clear();\r
+ for (int j=0;j<sorted.length;j++)\r
+ {\r
+ tosort[j] = ((String[]) sorted[j])[1];\r
+ }\r
+ jalview.util.QuickSort.sort(tosort, sorted);\r
+ for (int j=sorted.length-1;j>=0; j--,i++)\r
+ {\r
+ srcs[i] = ((String[]) sorted[j])[0];\r
+ sorted[j] = null;\r
+ }\r
+ return srcs;\r
+ }\r
+ /**\r