X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FAlignCalcWorker.java;h=f1b30194df3c1ec5050c1172309bfe4b35dde2ad;hb=3eef76298c55f3def21eed2516b5ace4405bed0a;hp=41022e50638643e6d01e3f17345ddf1799ea44fb;hpb=60805a2d20a347ef1958a7a5576cda7a186f8a8d;p=jalview.git diff --git a/src/jalview/workers/AlignCalcWorker.java b/src/jalview/workers/AlignCalcWorker.java index 41022e5..f1b3019 100644 --- a/src/jalview/workers/AlignCalcWorker.java +++ b/src/jalview/workers/AlignCalcWorker.java @@ -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 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 }