final AlignmentI dataset;\r
final AlignFrame af;\r
StringBuffer sbuffer = new StringBuffer();\r
+ Vector selectedSources;\r
\r
+ long startTime;\r
+ int threadsRunning = 0;\r
\r
\r
/**\r
* Creates a new SequenceFeatureFetcher object.\r
+ * Uses default\r
*\r
* @param align DOCUMENT ME!\r
* @param ap DOCUMENT ME!\r
*/\r
public DasSequenceFeatureFetcher(AlignmentI align,\r
- AlignFrame af)\r
+ AlignFrame af,\r
+ Vector selectedSources)\r
{\r
+ this.selectedSources = selectedSources;\r
this.dataset = align.getDataset();\r
this.af = af;\r
\r
sourceUrl);\r
if (id != null && id.length() > 0)\r
{\r
+ setThreadsRunning(+1);\r
+\r
FeatureThread fetcher = new FeatureThread(id\r
+ ":" + seq.getStart() + "," +seq.getEnd()\r
, source);\r
{\r
public void comeBackLater(FeatureEvent e)\r
{\r
+ setThreadsRunning(-1);\r
Cache.log.debug("das source " + e.getDasSource().getNickname() +\r
" asked us to come back in " + e.getComeBackLater() +\r
" secs.");\r
\r
public void newFeatures(FeatureEvent e)\r
{\r
+ setThreadsRunning(-1);\r
Das1Source ds = e.getDasSource();\r
\r
Map[] features = e.getFeatures();\r
fetcher.start();\r
}\r
}\r
+\r
+ synchronized void setThreadsRunning(int i)\r
+ {\r
+ threadsRunning += i;\r
+ if(threadsRunning<1)\r
+ af.setProgressBar("DAS Feature Fetching Complete", startTime);\r
+ }\r
+\r
/**\r
* Spawns a number of dasobert Fetcher threads to add features to sequences in the dataset\r
*/\r
public void run()\r
{\r
- long startTime = System.currentTimeMillis();\r
+ startTime = System.currentTimeMillis();\r
af.setProgressBar("Fetching DAS Sequence Features", startTime);\r
\r
DasSource [] sources = new jalview.gui.DasSourceBrowser().getDASSource();\r
\r
- String active = jalview.bin.Cache.getDefault("DAS_ACTIVE_SOURCE", "uniprot");\r
- StringTokenizer st = new StringTokenizer(active, "\t");\r
- Vector selectedSources = new Vector();\r
- String token;\r
- while (st.hasMoreTokens())\r
+ if(selectedSources==null || selectedSources.size()==0)\r
{\r
- token = st.nextToken();\r
- for(int i=0; i<sources.length; i++)\r
+ String active = jalview.bin.Cache.getDefault("DAS_ACTIVE_SOURCE", "uniprot");\r
+ StringTokenizer st = new StringTokenizer(active, "\t");\r
+ Vector selectedSources = new Vector();\r
+ String token;\r
+ while (st.hasMoreTokens())\r
{\r
- if(sources[i].getNickname().equals(token))\r
+ token = st.nextToken();\r
+ for (int i = 0; i < sources.length; i++)\r
{\r
- selectedSources.addElement(sources[i]);\r
- break;\r
+ if (sources[i].getNickname().equals(token))\r
+ {\r
+ selectedSources.addElement(sources[i]);\r
+ break;\r
+ }\r
}\r
}\r
}\r
\r
-\r
if(selectedSources == null || selectedSources.size()==0)\r
{\r
System.out.println("No DAS Sources active");\r
{\r
ex.printStackTrace();\r
}\r
-\r
- af.setProgressBar("DAS Feature Fetching Complete", startTime);\r
}\r
\r
\r