JAL-1015 refactor tooltip html generation code to jalview.io.SequenceAnnotationReport
[jalview.git] / src / jalview / workers / AlignCalcWorker.java
index 41022e5..f1b3019 100644 (file)
@@ -3,10 +3,14 @@
  */
 package jalview.workers;
 
+import java.util.List;
+
 import jalview.api.AlignCalcManagerI;
 import jalview.api.AlignCalcWorkerI;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
+import jalview.datamodel.AlignmentAnnotation;
+import jalview.datamodel.AlignmentI;
 
 /**
  * Base class for alignment calculation workers 
@@ -21,7 +25,8 @@ public abstract class AlignCalcWorker implements AlignCalcWorkerI
   protected AlignViewportI alignViewport;
   protected AlignCalcManagerI calcMan;
   protected AlignmentViewPanel ap;
-
+  protected List<AlignmentAnnotation> ourAnnots=null;
+  
   public AlignCalcWorker(AlignViewportI alignViewport,
           AlignmentViewPanel alignPanel)
   {
@@ -39,6 +44,28 @@ public abstract class AlignCalcWorker implements AlignCalcWorkerI
     ap=null;
     
   }
+  public boolean involves(AlignmentAnnotation i)
+  {
+    return ourAnnots!=null && ourAnnots.contains(i);
+  }
 
+  /**
+   * permanently remove from the alignment all annotation rows managed by this worker
+   */
+  @Override
+  public void removeOurAnnotation()
+  {
+    if (ourAnnots!=null && alignViewport!=null)
+    {
+      AlignmentI alignment=alignViewport.getAlignment();
+      synchronized (ourAnnots) {
+        for (AlignmentAnnotation aa:ourAnnots)
+        {
+          alignment.deleteAnnotation(aa, true);
+        }
+      }
+    }
+  }
+  // TODO: allow GUI to query workers associated with annotation to add items to annotation label panel popup menu
 
 }