X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FDasSequenceFeatureFetcher.java;h=1c5da5494f58f1f8c16564a9d162832d3c393b98;hb=27e04880edb301447f2e57b5156b8c685b853b68;hp=21ead9c8bc26351648817dd6ed734a08698e28d8;hpb=6ae5fa606e41ff9e06b55d3f5f613e544ad37937;p=jalview.git diff --git a/src/jalview/io/DasSequenceFeatureFetcher.java b/src/jalview/io/DasSequenceFeatureFetcher.java index 21ead9c..1c5da54 100755 --- a/src/jalview/io/DasSequenceFeatureFetcher.java +++ b/src/jalview/io/DasSequenceFeatureFetcher.java @@ -52,8 +52,10 @@ public class DasSequenceFeatureFetcher { SequenceI[] sequences; AlignFrame af; + FeatureSettings fsettings; StringBuffer sbuffer = new StringBuffer(); Vector selectedSources; + boolean cancelled = false; long startTime; @@ -65,12 +67,13 @@ public class DasSequenceFeatureFetcher * @param ap DOCUMENT ME! */ public DasSequenceFeatureFetcher(SequenceI[] sequences, - final AlignFrame af, + FeatureSettings fsettings, Vector selectedSources) { this.selectedSources = selectedSources; this.sequences = sequences; - this.af = af; + this.af = fsettings.af; + this.fsettings = fsettings; int uniprotCount = 0; for (int i = 0; i < selectedSources.size(); i++) @@ -145,6 +148,7 @@ public class DasSequenceFeatureFetcher */ void startFetching() { + cancelled = false; startTime = System.currentTimeMillis(); af.setProgressBar("Fetching DAS Sequence Features", startTime); @@ -180,7 +184,9 @@ public class DasSequenceFeatureFetcher sourcesRemaining = selectedSources.size(); //Now sending requests one at a time to each server - for (int sourceIndex = 0; sourceIndex < selectedSources.size(); + for (int sourceIndex = 0; + sourceIndex < selectedSources.size() + && !cancelled; sourceIndex++) { DasSource dasSource = (DasSource) selectedSources.elementAt( @@ -190,12 +196,20 @@ public class DasSequenceFeatureFetcher } } + public void cancel() + { + af.setProgressBar("DAS Feature Fetching Cancelled", startTime); + cancelled = true; + } + int sourcesRemaining=0; void responseComplete(DasSource dasSource, SequenceI seq) { if (seq != null) { - for (int seqIndex = 0; seqIndex < sequences.length-1; seqIndex++) + for (int seqIndex = 0; + seqIndex < sequences.length-1 + && !cancelled; seqIndex++) { if (sequences[seqIndex] == seq) { @@ -213,6 +227,8 @@ public class DasSequenceFeatureFetcher if(af.featureSettings!=null) af.featureSettings.setTableData(); + + fsettings.complete(); } } @@ -443,7 +459,7 @@ public class DasSequenceFeatureFetcher DasSourceReaderImpl reader = new DasSourceReaderImpl(); String registryURL = jalview.bin.Cache.getDefault("DAS_REGISTRY_URL", - "http://das.sanger.ac.uk/registry/das1/sources/" + "http://www.dasregistry.org/registry/das1/sources/" ); try