CutAndPasteTransfer output = new CutAndPasteTransfer();\r
StringBuffer sbuffer = new StringBuffer();\r
boolean uniprotFlag = false;\r
+ boolean running = false;\r
\r
public DBRefFetcher()\r
{}\r
unknownSequences = new ArrayList();\r
this.align = align;\r
this.dataset = align.getDataset();\r
+ }\r
\r
+ public boolean fetchDBRefs(boolean waitTillFinished)\r
+ {\r
Thread thread = new Thread(this);\r
thread.start();\r
+ running = true;\r
+\r
+ if(waitTillFinished)\r
+ {\r
+ while(running)\r
+ {\r
+ try{\r
+ Thread.sleep(500);\r
+ }catch(Exception ex){}\r
+ }\r
+ }\r
+\r
+ return true;\r
}\r
\r
/**\r
{\r
long startTime = System.currentTimeMillis();\r
af.setProgressBar("Fetching db refs", startTime);\r
+ running = true;\r
\r
try\r
{\r
seqIndex++, i++)\r
{\r
Sequence sequence = (Sequence) sequences.get(seqIndex);\r
- Vector uprefs = jalview.util.DBRefUtils.selectRefs(sequence.getDBRef(), new String[] {\r
+ DBRefEntry [] uprefs = jalview.util.DBRefUtils.selectRefs(sequence.getDBRef(), new String[] {\r
jalview.datamodel.DBRefSource.UNIPROT});\r
if (uprefs!=null)\r
{\r
// we know the id for this entry, so don't note its ID in the unknownSequences list\r
- for (int j=0,k=uprefs.size(); j<k; j++)\r
- ids.add(((DBRefEntry) uprefs.get(j)).getAccessionId());\r
+ for (int j=0,k=uprefs.length; j<k; j++)\r
+ ids.add(uprefs[j].getAccessionId());\r
unknownSequences.add(sequence);\r
} else {\r
if (!ids.contains(sequence.getName()))\r
ids.get(i).toString().lastIndexOf("|") + 1));\r
uniprotFlag = true;\r
}\r
- remainingIds.append(ids.get(i) + ";");\r
+ else\r
+ remainingIds.append(ids.get(i));\r
+\r
+ remainingIds.append(";");\r
}\r
+\r
EBIFetchClient ebi = new EBIFetchClient();\r
File file = ebi.fetchDataAsFile(remainingIds.toString(),\r
"xml", "raw");\r
af.setProgressBar("DBRef search completed", startTime);\r
// promptBeforeBlast();\r
\r
+ running = false;\r
+\r
}\r
\r
\r
\r
else if (sequence == null && uniprotFlag)\r
{\r
- sequence = dataset.findName("UniProt/Swiss-Prot|"+entry.getAccession().elementAt(0)+"|"+idmatch);\r
+ StringBuffer upid = new StringBuffer("UniProt/Swiss-Prot|");\r
+ for(int u=0; u<entry.getAccession().size(); u++)\r
+ upid.append(entry.getAccession().elementAt(u)+"|");\r
+\r
+ sequence = dataset.findName(upid+idmatch);\r
ids.remove(idmatch);\r
}\r
\r