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;
{
SequenceI[] dataset;
- IProgressIndicator af;
+ IProgressIndicator progressWindow;
CutAndPasteTransfer output = new CutAndPasteTransfer();
}
/**
- * 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++)
}
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);
String[] defdb = null, otherdb = sfetcher
.getDbInstances(jalview.ws.dbsources.das.datamodel.DasSequenceSource.class);
List<DbSourceProxy> selsources = new ArrayList<DbSourceProxy>();
- Vector dasselsrc = (af.featureSettings != null) ? af.featureSettings
+ Vector dasselsrc = (featureSettings != null) ? featureSettings
.getSelectedSources() : new jalview.gui.DasSourceBrowser()
.getSelectedSources();
Enumeration<jalviewSourceI> en = dasselsrc.elements();
}
}
// select appropriate databases based on alignFrame context.
- if (af.getViewport().getAlignment().isNucleotide())
+ if (isNucleotide)
{
defdb = DBRefSource.DNACODINGDBS;
}
}
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))
{
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
// 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;
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
// 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
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++)
{