X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FAbstractJabaCalcWorker.java;h=3b56a70d1afb6925f16736c22b311d53c1809132;hb=c932f0e85a8852824cdd8ce790af68682732c85c;hp=3c5ce637eb79e90c8f1a50fd1e259153a7a07117;hpb=4decc3e365ce990f54773d24bb9583df48d2797a;p=jalview.git diff --git a/src/jalview/ws/jws2/AbstractJabaCalcWorker.java b/src/jalview/ws/jws2/AbstractJabaCalcWorker.java index 3c5ce63..3b56a70 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 @@ -236,11 +259,11 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker { if (cancelJob(rslt)) { - System.err.println("Cancelled AACon job: " + rslt); + jalview.bin.Console.errPrintln("Cancelled AACon job: " + rslt); } else { - System.err.println("FAILED TO CANCEL AACon job: " + rslt); + jalview.bin.Console.errPrintln("FAILED TO CANCEL AACon job: " + rslt); } } catch (Exception x) @@ -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,13 +356,13 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker catch (JobSubmissionException x) { - System.err.println("submission error with " + getServiceActionText() - + " :"); + jalview.bin.Console.errPrintln( + "submission error with " + getServiceActionText() + " :"); x.printStackTrace(); calcMan.disableWorker(this); } catch (ResultNotAvailableException x) { - System.err.println("collection error:\nJob ID: " + rslt); + jalview.bin.Console.errPrintln("collection error:\nJob ID: " + rslt); x.printStackTrace(); calcMan.disableWorker(this); @@ -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) { @@ -418,11 +441,11 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker String id = rslt; if (cancelJob(rslt)) { - System.err.println("Cancelled job " + id); + jalview.bin.Console.errPrintln("Cancelled job " + id); } else { - System.err.println("Job " + id + " couldn't be cancelled."); + jalview.bin.Console.errPrintln("Job " + id + " couldn't be cancelled."); } } catch (Exception q) { @@ -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 @@ -497,8 +522,10 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker } for (int apos : sq.gapMap()) { + char sqc = sq.getCharAt(apos); if (!filterNonStandardResidues - || ResidueProperties.aaIndex[sq.getCharAt(apos)] < 20) + || (sq.isProtein() ? ResidueProperties.aaIndex[sqc] < 20 + : ResidueProperties.nucleotideIndex[sqc] < 5)) { gapMap[apos] = true; // aligned and real amino acid residue } @@ -535,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]) @@ -577,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)) @@ -588,7 +615,7 @@ public abstract class AbstractJabaCalcWorker extends AlignCalcWorker { if (ap != null) { - ap.paintAlignment(false); + ap.paintAlignment(false, false); } Thread.sleep(200);