X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2Fjws2%2FJabawsAlignCalcWorker.java;h=55d32f5846c787faf28e51dc367ec0f842e7bebd;hb=8364d3900ad4271d460ae15a245add45c66c2e89;hp=d8807e7040ba3d643f0c50f2a906c22a7f5f4e53;hpb=9d2dcf98b8a7a97f9f57afe8e93a484bb4205824;p=jalview.git
diff --git a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java
index d8807e7..55d32f5 100644
--- a/src/jalview/ws/jws2/JabawsAlignCalcWorker.java
+++ b/src/jalview/ws/jws2/JabawsAlignCalcWorker.java
@@ -1,14 +1,29 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
+ * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Jalview. If not, see .
+ */
package jalview.ws.jws2;
import jalview.analysis.AlignSeq;
import jalview.analysis.SeqsetUtils;
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
-import jalview.bin.Cache;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
-import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.IProgressIndicator;
@@ -17,15 +32,12 @@ import jalview.ws.jws2.dm.JabaWsParamSet;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.params.WsParamSetI;
-import java.awt.Color;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import com.sun.xml.internal.ws.client.ClientTransportException;
-
import compbio.data.msa.SequenceAnnotation;
import compbio.data.sequence.FastaSequence;
import compbio.data.sequence.Score;
@@ -41,6 +53,7 @@ import compbio.metadata.WrongParameterException;
public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
{
Jws2Instance service;
+
@SuppressWarnings("unchecked")
protected SequenceAnnotation aaservice;
@@ -81,10 +94,10 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
}
/**
- * reconfigure and restart the AAConsClient. This method will spawn a new
+ * reconfigure and restart the AAConClient. This method will spawn a new
* thread that will wait until any current jobs are finished, modify the
* parameters and restart the conservation calculation with the new values.
- *
+ *
* @param newpreset
* @param newarguments
*/
@@ -128,7 +141,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
int serverErrorsLeft = 3;
String rslt = "JOB NOT DEFINED";
- StringBuffer msg=new StringBuffer();
+ StringBuffer msg = new StringBuffer();
try
{
if (checkDone())
@@ -151,7 +164,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
guiProgress.setProgressBar("JABA " + getServiceActionText(),
progressId = System.currentTimeMillis());
}
- if (preset == null && arguments==null)
+ if (preset == null && arguments == null)
{
rslt = aaservice.analize(seqs);
}
@@ -176,7 +189,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
{
finished = true;
}
- if (calcMan.isPending(this) && this instanceof AAConsClient)
+ if (calcMan.isPending(this) && this instanceof AAConClient)
{
finished = true;
// cancel this job and yield to the new job
@@ -209,7 +222,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
try
{
stats = aaservice.pullExecStatistics(rslt, rpos);
- } catch (Exception x)
+ } catch (Exception x)
{
if (x.getMessage().contains(
@@ -226,10 +239,16 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
if (--serverErrorsLeft > 0)
{
retry = true;
- try {
+ try
+ {
Thread.sleep(200);
- } catch (InterruptedException q) {};
- } else {
+ } catch (InterruptedException q)
+ {
+ }
+ ;
+ }
+ else
+ {
throw x;
}
}
@@ -254,7 +273,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
;
}
} while (!finished);
- if (serverErrorsLeft>0)
+ if (serverErrorsLeft > 0)
{
try
{
@@ -270,6 +289,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
.debug("Updating result annotation from Job " + rslt
+ " at " + service.getUri());
updateResultAnnotation(true);
+ ap.adjustAnnotationHeight();
}
}
}
@@ -310,19 +330,22 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
if (ap != null)
{
calcMan.workerComplete(this);
- if (guiProgress != null && progressId!=-1)
+ if (guiProgress != null && progressId != -1)
{
guiProgress.setProgressBar("", progressId);
}
ap.paintAlignment(true);
}
- if (msg.length()>0)
+ if (msg.length() > 0)
{
// TODO: stash message somewhere in annotation or alignment view.
// code below shows result in a text box popup
- /* jalview.gui.CutAndPasteTransfer cap = new jalview.gui.CutAndPasteTransfer();
- cap.setText(msg.toString());
- jalview.gui.Desktop.addInternalFrame(cap, "Job Status for "+getServiceActionText(), 600, 400); */
+ /*
+ * jalview.gui.CutAndPasteTransfer cap = new
+ * jalview.gui.CutAndPasteTransfer(); cap.setText(msg.toString());
+ * jalview.gui.Desktop.addInternalFrame(cap,
+ * "Job Status for "+getServiceActionText(), 600, 400);
+ */
}
}
@@ -352,8 +375,11 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
protected boolean bySequence = false;
Map seqNames;
+
boolean[] gapMap;
+
int realw;
+
public List getInputSequences(AlignmentI alignment)
{
if (alignment == null || alignment.getWidth() <= 0
@@ -372,7 +398,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
{
seqNames = new HashMap();
}
- gapMap=new boolean[0];
+ gapMap = new boolean[0];
for (SequenceI sq : ((List) alignment.getSequences()))
{
if (sq.getEnd() - sq.getStart() > minlen - 1)
@@ -386,25 +412,28 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
FastaSequence seq;
if (submitGaps)
{
- seqs.add(seq = new compbio.data.sequence.FastaSequence(newname,sq.getSequenceAsString()));
- if (gapMap==null || gapMap.length ln)
{
@@ -415,7 +444,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
if (alignedSeqs && submitGaps)
{
realw = 0;
- for (int i=0;ipp)
+ if (orig.length > pp)
{
- padded[i++]=orig[pp];
- } else {
- padded[i++]='-';
- }
+ padded[i++] = orig[pp];
+ }
+ else
+ {
+ padded[i++] = '-';
+ }
}
}
seqs.set(p, new compbio.data.sequence.FastaSequence(sq.getId(),
- new String(padded)));
+ new String(padded)));
}
}
return seqs;
@@ -452,7 +484,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
/**
* notify manager that we have started, and wait for a free calculation slot
- *
+ *
* @return true if slot is obtained and work still valid, false if another
* thread has done our work for us.
*/
@@ -515,8 +547,8 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
// annotation.setCalcId(calcId);
AlignmentAnnotation annotation = alignViewport.getAlignment()
.findOrCreateAnnotation(typeName, calcId, false, dseq, null);
- constructAnnotationFromScore(annotation, base, dseq.getLength(), scr);
- annotation.createSequenceMapping(dseq, dseq.findPosition(base), false);
+ constructAnnotationFromScore(annotation, 0, dseq.getLength(), scr);
+ annotation.createSequenceMapping(dseq, base, false);
annotation.adjustForAlignment();
dseq.addAlignmentAnnotation(annotation);
ourAnnot.add(annotation);
@@ -529,7 +561,7 @@ public abstract class JabawsAlignCalcWorker extends AlignCalcWorker
Annotation[] elm = new Annotation[alWidth];
Iterator vals = scr.getScores().iterator();
float m = 0f, x = 0f;
- for (int i = base; vals.hasNext(); i++)
+ for (int i = 0; vals.hasNext(); i++)
{
float val = vals.next().floatValue();
if (i == 0)