4 package jalview.workers;
8 import jalview.api.AlignCalcManagerI;
9 import jalview.api.AlignCalcWorkerI;
10 import jalview.api.AlignViewportI;
11 import jalview.api.AlignmentViewPanel;
12 import jalview.datamodel.AlignmentAnnotation;
13 import jalview.datamodel.AlignmentI;
16 * Base class for alignment calculation workers
20 public abstract class AlignCalcWorker implements AlignCalcWorkerI
23 * manager and data source for calculations
25 protected AlignViewportI alignViewport;
26 protected AlignCalcManagerI calcMan;
27 protected AlignmentViewPanel ap;
28 protected List<AlignmentAnnotation> ourAnnots=null;
30 public AlignCalcWorker(AlignViewportI alignViewport,
31 AlignmentViewPanel alignPanel)
33 this.alignViewport = alignViewport;
34 calcMan=alignViewport.getCalcManager();
37 protected void abortAndDestroy()
40 calcMan.workerComplete(this);
47 public boolean involves(AlignmentAnnotation i)
49 return ourAnnots!=null && ourAnnots.contains(i);
53 * permanently remove from the alignment all annotation rows managed by this worker
56 public void removeOurAnnotation()
58 if (ourAnnots!=null && alignViewport!=null)
60 AlignmentI alignment=alignViewport.getAlignment();
61 synchronized (ourAnnots) {
62 for (AlignmentAnnotation aa:ourAnnots)
64 alignment.deleteAnnotation(aa, true);
69 // TODO: allow GUI to query workers associated with annotation to add items to annotation label panel popup menu