X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2FDBRefFetcher.java;h=dff1b987801c685c5902c36390453f1876d0d3ea;hb=9fe87bd08ab29b6fe53364f387d7a2e3a8d39994;hp=d531fea96622ee408002129bd8d4cc163749069d;hpb=a207f4080b01543b48b80f6f3eb331b75b63bdc6;p=jalview.git diff --git a/src/jalview/ws/DBRefFetcher.java b/src/jalview/ws/DBRefFetcher.java index d531fea..dff1b98 100644 --- a/src/jalview/ws/DBRefFetcher.java +++ b/src/jalview/ws/DBRefFetcher.java @@ -28,9 +28,9 @@ import jalview.datamodel.DBRefSource; import jalview.datamodel.Mapping; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; -import jalview.gui.AlignFrame; import jalview.gui.CutAndPasteTransfer; import jalview.gui.Desktop; +import jalview.gui.FeatureSettings; import jalview.gui.IProgressIndicator; import jalview.gui.OOMWarning; import jalview.util.MessageManager; @@ -57,7 +57,7 @@ public class DBRefFetcher implements Runnable { SequenceI[] dataset; - IProgressIndicator af; + IProgressIndicator progressWindow; CutAndPasteTransfer output = new CutAndPasteTransfer(); @@ -91,34 +91,25 @@ public class DBRefFetcher implements Runnable } /** - * Creates a new SequenceFeatureFetcher object and fetches from the currently - * selected set of databases. + * Creates a new DBRefFetcher object and fetches from the currently selected + * set of databases, if this is null then it fetches based on feature settings * * @param seqs - * fetch references for these sequences - * @param af - * the parent alignframe for progress bar monitoring. - */ - 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. + * fetch references for these SequenceI array + * @param progressIndicatorFrame + * the frame for progress bar monitoring * @param sources - * array of database source strings to query references from + * array of DbSourceProxy to query references form + * @param featureSettings + * FeatureSettings to get alternative DbSourceProxy from + * @param isNucleotide + * indicates if the array of SequenceI are Nucleotides or not */ - public DBRefFetcher(SequenceI[] seqs, AlignFrame af, - DbSourceProxy[] sources) + public DBRefFetcher(SequenceI[] seqs, + IProgressIndicator progressIndicatorFrame, + DbSourceProxy[] sources, FeatureSettings featureSettings, boolean isNucleotide) { - this.af = af; + this.progressWindow = progressIndicatorFrame; alseqs = new SequenceI[seqs.length]; SequenceI[] ds = new SequenceI[seqs.length]; for (int i = 0; i < seqs.length; i++) @@ -135,7 +126,8 @@ 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); + sfetcher = jalview.gui.SequenceFetcher + .getSequenceFetcherSingleton(progressIndicatorFrame); // set default behaviour for transferring excess sequence data to the // dataset trimDsSeqs = Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true); @@ -145,7 +137,7 @@ public class DBRefFetcher implements Runnable String[] defdb = null, otherdb = sfetcher .getDbInstances(jalview.ws.dbsources.das.datamodel.DasSequenceSource.class); List selsources = new ArrayList(); - Vector dasselsrc = (af.featureSettings != null) ? af.featureSettings + Vector dasselsrc = (featureSettings != null) ? featureSettings .getSelectedSources() : new jalview.gui.DasSourceBrowser() .getSelectedSources(); Enumeration en = dasselsrc.elements(); @@ -163,7 +155,7 @@ public class DBRefFetcher implements Runnable } } // select appropriate databases based on alignFrame context. - if (af.getViewport().getAlignment().isNucleotide()) + if (isNucleotide) { defdb = DBRefSource.DNACODINGDBS; } @@ -283,6 +275,7 @@ public class DBRefFetcher implements Runnable /** * DOCUMENT ME! */ + @Override public void run() { if (dbSources == null) @@ -293,8 +286,12 @@ public class DBRefFetcher implements Runnable } running = true; long startTime = System.currentTimeMillis(); - af.setProgressBar(MessageManager.getString("status.fetching_db_refs"), + if (progressWindow != null) + { + progressWindow.setProgressBar( + MessageManager.getString("status.fetching_db_refs"), startTime); + } try { if (Cache.getDefault("DBREFFETCH_USEPICR", false)) @@ -335,16 +332,8 @@ public class DBRefFetcher implements Runnable // TODO: introduce multithread multisource queries and logic to remove a // query from other sources if any source for a database returns a // record - if (dbsource.getDbSourceProperties().containsKey( - DBRefSource.MULTIACC)) - { - maxqlen = ((Integer) dbsource.getDbSourceProperties().get( - DBRefSource.MULTIACC)).intValue(); - } - else - { - maxqlen = 1; - } + maxqlen = dbsource.getMaximumQueryCount(); + while (queries.size() > 0 || seqIndex < currSeqs.length) { if (queries.size() > 0) @@ -400,7 +389,7 @@ public class DBRefFetcher implements Runnable { SequenceI sequence = dataset[seqIndex]; DBRefEntry[] uprefs = jalview.util.DBRefUtils.selectRefs( - sequence.getDBRef(), + sequence.getDBRefs(), new String[] { dbsource.getDbSource() }); // jalview.datamodel.DBRefSource.UNIPROT // }); // check for existing dbrefs to use @@ -479,11 +468,14 @@ public class DBRefFetcher implements Runnable // of the viewed sequence } + if (progressWindow != null) + { + progressWindow.setProgressBar( + MessageManager.getString("label.dbref_search_completed"), + startTime); + // promptBeforeBlast(); - af.setProgressBar( - MessageManager.getString("label.dbref_search_completed"), - startTime); - // promptBeforeBlast(); + } running = false; @@ -524,7 +516,7 @@ public class DBRefFetcher implements Runnable Vector sequenceMatches = new Vector(); // look for corresponding accession ids DBRefEntry[] entryRefs = jalview.util.DBRefUtils.selectRefs( - entry.getDBRef(), new String[] { dbSource }); + entry.getDBRefs(), new String[] { dbSource }); if (entryRefs == null) { System.err @@ -591,8 +583,8 @@ public class DBRefFetcher implements Runnable // no existing references // TODO: test for legacy where uniprot or EMBL refs exist but no // mappings are made (but content matches retrieved set) - boolean updateRefFrame = sequence.getDBRef() == null - || sequence.getDBRef().length == 0; + boolean updateRefFrame = sequence.getDBRefs() == null + || sequence.getDBRefs().length == 0; // TODO: // verify sequence against the entry sequence @@ -737,7 +729,7 @@ public class DBRefFetcher implements Runnable for (int i = 0; sequencesArray != null && i < sequencesArray.length; i++) { nseq.addElement(sequencesArray[i]); - DBRefEntry dbr[] = sequencesArray[i].getDBRef(); + DBRefEntry dbr[] = sequencesArray[i].getDBRefs(); jalview.datamodel.Mapping map = null; for (int r = 0; (dbr != null) && r < dbr.length; r++) {