package jalview.ws.jws2; import jalview.analysis.AlignSeq; import jalview.analysis.SeqsetUtils; import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; import jalview.gui.AlignFrame; import jalview.workers.AlignCalcWorker; import jalview.ws.jws2.dm.JabaWsParamSet; import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.params.WsParamSetI; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.TreeSet; import compbio.data.msa.SequenceAnnotation; import compbio.data.sequence.Score; import compbio.data.sequence.ScoreManager; import compbio.metadata.Argument; import compbio.metadata.ChunkHolder; import compbio.metadata.JobStatus; import compbio.metadata.JobSubmissionException; import compbio.metadata.Option; import compbio.metadata.ResultNotAvailableException; import compbio.metadata.WrongParameterException; public class AAConsClient extends AlignCalcWorker { public AAConsClient(AlignViewportI alignViewport, AlignmentViewPanel alignPanel) { super(alignViewport, alignPanel); } @SuppressWarnings("unchecked") SequenceAnnotation aaservice; private ScoreManager scoremanager; private WsParamSetI preset; private List arguments; public WsParamSetI getPreset() { return preset; } public List getArguments() { return arguments; } /** * reconfigure and restart the AAConsClient. 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 */ public void updateParameters(final WsParamSetI newpreset, final List newarguments) { if (calcMan.isWorking(this)) { new Thread(new Runnable() { @Override public void run() { try {Thread.sleep(200); } catch (InterruptedException x) {}; updateParameters(newpreset, newarguments); } } ).start(); } else { preset=newpreset; arguments=newarguments; calcMan.startWorker(this); } } public AAConsClient(Jws2Instance service, AlignFrame alignFrame, WsParamSetI preset, List paramset) { this(alignFrame.getCurrentView(), alignFrame.alignPanel); this.preset = preset; this.arguments = paramset; aaservice = (SequenceAnnotation) service.service; } public List