X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2FDBRefFetcher.java;h=be0a8b0b67aead74f34ea35e26fa40c5e00d6f4d;hb=1145380bdd6555637794c9db36624fa42a8818c8;hp=96ac7e8e84c7cc8940bcd901fbe128260986289e;hpb=5d55702b40b8a0b198a0a22b4fbb8458fa2bc7f4;p=jalview.git diff --git a/src/jalview/ws/DBRefFetcher.java b/src/jalview/ws/DBRefFetcher.java index 96ac7e8..be0a8b0 100644 --- a/src/jalview/ws/DBRefFetcher.java +++ b/src/jalview/ws/DBRefFetcher.java @@ -21,6 +21,7 @@ package jalview.ws; import java.io.*; import java.util.*; +import org.biojava.dasobert.dasregistry.DasSource; import org.exolab.castor.mapping.*; import org.exolab.castor.xml.*; import jalview.analysis.*; @@ -62,7 +63,8 @@ public class DBRefFetcher implements Runnable } /** - * Creates a new SequenceFeatureFetcher object. + * Creates a new SequenceFeatureFetcher object and fetches from the + * currently selected set of databases. * * @param seqs * fetch references for these sequences @@ -71,6 +73,20 @@ public class DBRefFetcher implements Runnable */ public DBRefFetcher(SequenceI[] seqs, AlignFrame af) { + this(seqs, af, null); + } + /** + * Creates a new SequenceFeatureFetcher object and fetches from the + * currently selected set of databases. + * + * @param seqs + * fetch references for these sequences + * @param af + * the parent alignframe for progress bar monitoring. + * @param sources array of database source strings to query references from + */ + public DBRefFetcher(SequenceI[] seqs, AlignFrame af, String[] sources) + { this.af = af; SequenceI[] ds = new SequenceI[seqs.length]; for (int i = 0; i < seqs.length; i++) @@ -83,17 +99,71 @@ public class DBRefFetcher implements Runnable this.dataset = ds; // TODO Jalview 2.5 lots of this code should be in the gui package! sfetcher = jalview.gui.SequenceFetcher.getSequenceFetcherSingleton(af); - // select appropriate databases based on alignFrame context. - if (af.getViewport().getAlignment().isNucleotide()) + if (sources==null) { - dbSources = DBRefSource.DNACODINGDBS; + // af.featureSettings_actionPerformed(null); + String[] defdb=null,otherdb = sfetcher.getDbInstances(jalview.ws.dbsources.DasSequenceSource.class); + Vector selsources = new Vector(), dasselsrc= (af.featureSettings!=null) ? af.featureSettings.getSelectedSources() + : new jalview.gui.DasSourceBrowser().getSelectedSources(); + Enumeration en = dasselsrc.elements(); + while (en.hasMoreElements()) + { + DasSource src = (DasSource) en.nextElement(); + selsources.addElement(src.getNickname()); + } + int osel = 0; + for (int o=0;otherdb!=null && o0) { - dbSources = DBRefSource.PROTEINDBS; + String[] newsrc = new String[dbSources.length+otherdb.length]; + System.arraycopy(dbSources, 0, newsrc,0,dbSources.length); + System.arraycopy(otherdb, 0, newsrc,dbSources.length, otherdb.length); + dbSources = newsrc; } } - /** * start the fetcher thread *