X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fseqfetcher%2FASequenceFetcher.java;h=23924769d7a80c2344c35da8c1474852f7c0a6c8;hb=0673686a4ceda776a64350afd35ecff18e74e575;hp=9e438d335dab9e1a79dcb16d46be501079d69427;hpb=d015dda1e582c4654acd7fb7761fb0c0a2dc3573;p=jalview.git diff --git a/src/jalview/ws/seqfetcher/ASequenceFetcher.java b/src/jalview/ws/seqfetcher/ASequenceFetcher.java index 9e438d3..2392476 100644 --- a/src/jalview/ws/seqfetcher/ASequenceFetcher.java +++ b/src/jalview/ws/seqfetcher/ASequenceFetcher.java @@ -20,6 +20,7 @@ */ package jalview.ws.seqfetcher; +import jalview.api.FeatureSettingsModelI; import jalview.bin.Cache; import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefEntry; @@ -157,7 +158,8 @@ public class ASequenceFetcher Stack queriesLeft = new Stack(); queriesLeft.addAll(query); - for (DbSourceProxy fetcher : getSourceProxy(db)) + List proxies = getSourceProxy(db); + for (DbSourceProxy fetcher : proxies) { List queriesMade = new ArrayList(); HashSet queriesFound = new HashSet(); @@ -167,8 +169,7 @@ public class ASequenceFetcher { continue; // wrong sort of data } - boolean doMultiple = fetcher.getAccessionSeparator() != null; - // No separator - no Multiple Queries + boolean doMultiple = fetcher.getMaximumQueryCount() > 1; while (!queriesLeft.isEmpty()) { StringBuffer qsb = new StringBuffer(); @@ -187,8 +188,7 @@ public class ASequenceFetcher try { // create a fetcher and go to it - seqset = fetcher.getSequenceRecords(qsb.toString()); // , - // queriesFailed); + seqset = fetcher.getSequenceRecords(qsb.toString()); } catch (Exception ex) { System.err.println("Failed to retrieve the following from " @@ -206,7 +206,7 @@ public class ASequenceFetcher { rseqs.addElement(seqs[is]); DBRefEntry[] frefs = DBRefUtils.searchRefs(seqs[is] - .getDBRef(), new DBRefEntry(db, null, null)); + .getDBRefs(), new DBRefEntry(db, null, null)); if (frefs != null) { for (DBRefEntry dbr : frefs) @@ -255,7 +255,7 @@ public class ASequenceFetcher { System.out.println("# Adding " + queriesMade.size() + " ids back to queries list for searching again (" + db - + "."); + + ")"); queriesLeft.addAll(queriesMade); } } @@ -436,4 +436,28 @@ public class ASequenceFetcher return prlist.toArray(new DbSourceProxy[0]); } + /** + * Returns a preferred feature colouring scheme for the given source, or null + * if none is defined. + * + * @param source + * @return + */ + public FeatureSettingsModelI getFeatureColourScheme(String source) + { + /* + * return the first non-null colour scheme for any proxy for + * this database source + */ + for (DbSourceProxy proxy : getSourceProxy(source)) + { + FeatureSettingsModelI preferredColours = proxy + .getFeatureColourScheme(); + if (preferredColours != null) + { + return preferredColours; + } + } + return null; + } }