X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FAbstractJabaCalcWorker.java;h=9d56de4bdd6e1d2f4d468a668c9bf87e4d0a9146;hb=f721bbb9c300f6a1c845659b3947ebeca2795523;hp=f2795d2b8d1e550f4e79c205146a86656ae9070b;hpb=e2c4a2f38549ca11856aa94c6f75c2babfa78013;p=jalview.git diff --git a/src/jalview/ws/jws2/AbstractJabaCalcWorker.java b/src/jalview/ws/jws2/AbstractJabaCalcWorker.java index f2795d2..9d56de4 100644 --- a/src/jalview/ws/jws2/AbstractJabaCalcWorker.java +++ b/src/jalview/ws/jws2/AbstractJabaCalcWorker.java @@ -24,12 +24,14 @@ import jalview.analysis.AlignSeq; import jalview.analysis.SeqsetUtils; import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; +import jalview.bin.Console; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.gui.IProgressIndicator; +import jalview.gui.IProgressIndicatorHandler; import jalview.schemes.ResidueProperties; import jalview.workers.AlignCalcWorker; import jalview.ws.jws2.dm.AAConSettings; @@ -78,8 +80,10 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker ((jalview.gui.AlignViewport) alignViewport).setCalcIdSettingsFor( getCalcId(), new AAConSettings(true, service, this.preset, - (arguments != null) ? JabaParamStore - .getJwsArgsfromJaba(arguments) : null), true); + (arguments != null) + ? JabaParamStore.getJwsArgsfromJaba(arguments) + : null), + true); } } @@ -164,8 +168,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker super(alignViewport, alignPanel); } - public AbstractJabaCalcWorker(Jws2Instance service, - AlignFrame alignFrame, WsParamSetI preset, List paramset) + public AbstractJabaCalcWorker(Jws2Instance service, AlignFrame alignFrame, + WsParamSetI preset, List paramset) { this(alignFrame.getCurrentView(), alignFrame.alignPanel); this.guiProgress = alignFrame; @@ -218,7 +222,26 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker progressId = System.currentTimeMillis()); } rslt = submitToService(seqs); + if (guiProgress != null) + { + guiProgress.registerHandler(progressId, + new IProgressIndicatorHandler() + { + @Override + public boolean cancelActivity(long id) + { + cancelCurrentJob(); + return true; + } + + @Override + public boolean canCancel() + { + return true; + } + }); + } boolean finished = false; long rpos = 0; do @@ -322,9 +345,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker } if (collectAnnotationResultsFor(rslt)) { - jalview.bin.Cache.log - .debug("Updating result annotation from Job " + rslt - + " at " + service.getUri()); + Console.debug("Updating result annotation from Job " + rslt + + " at " + service.getUri()); updateResultAnnotation(true); ap.adjustAnnotationHeight(); } @@ -334,8 +356,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker catch (JobSubmissionException x) { - System.err.println("submission error with " + getServiceActionText() - + " :"); + System.err.println( + "submission error with " + getServiceActionText() + " :"); x.printStackTrace(); calcMan.disableWorker(this); } catch (ResultNotAvailableException x) @@ -371,7 +393,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker { guiProgress.setProgressBar("", progressId); } - ap.paintAlignment(true); + // TODO: may not need to paintAlignment again ! + ap.paintAlignment(false, false); } if (msg.length() > 0) { @@ -444,8 +467,9 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker AnnotatedCollectionI inputSeqs) { if (alignment == null || alignment.getWidth() <= 0 - || alignment.getSequences() == null || alignment.isNucleotide() ? !nucleotidesAllowed - : !proteinAllowed) + || alignment.getSequences() == null || alignment.isNucleotide() + ? !nucleotidesAllowed + : !proteinAllowed) { return null; } @@ -470,9 +494,10 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker for (SequenceI sq : (inputSeqs.getSequences())) { - if (bySequence ? sq.findPosition(end + 1) - - sq.findPosition(start + 1) > minlen - 1 : sq.getEnd() - - sq.getStart() > minlen - 1) + if (bySequence + ? sq.findPosition(end + 1) + - sq.findPosition(start + 1) > minlen - 1 + : sq.getEnd() - sq.getStart() > minlen - 1) { String newname = SeqsetUtils.unique_name(seqs.size() + 1); // make new input sequence with or without gaps @@ -537,8 +562,8 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker FastaSequence sq = seqs.get(p); int l = sq.getSequence().length(); // strip gapped columns - char[] padded = new char[realw], orig = sq.getSequence() - .toCharArray(); + char[] padded = new char[realw], + orig = sq.getSequence().toCharArray(); for (int i = 0, pp = 0; i < realw; pp++) { if (gapMap[pp]) @@ -579,7 +604,7 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker protected boolean checkDone() { calcMan.notifyStart(this); - ap.paintAlignment(false); + ap.paintAlignment(false, false); while (!calcMan.notifyWorking(this)) { if (calcMan.isWorking(this)) @@ -590,7 +615,7 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker { if (ap != null) { - ap.paintAlignment(false); + ap.paintAlignment(false, false); } Thread.sleep(200);