(JAL-811) - workers hold references to generated annotation rows
[jalview.git] / src / jalview / workers / AlignCalcWorker.java
1 /**
2  * 
3  */
4 package jalview.workers;
5
6 import java.util.List;
7
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
14 /**
15  * Base class for alignment calculation workers 
16  * @author jimp
17  *
18  */
19 public abstract class AlignCalcWorker implements AlignCalcWorkerI
20 {
21   /**
22    * manager and data source for calculations
23    */
24   protected AlignViewportI alignViewport;
25   protected AlignCalcManagerI calcMan;
26   protected AlignmentViewPanel ap;
27   protected List<AlignmentAnnotation> ourAnnots=null;
28   
29   public AlignCalcWorker(AlignViewportI alignViewport,
30           AlignmentViewPanel alignPanel)
31   {
32     this.alignViewport = alignViewport;
33     calcMan=alignViewport.getCalcManager();
34     ap = alignPanel;    
35   }
36   protected void abortAndDestroy()
37   {
38     if (calcMan!=null) {
39       calcMan.workerComplete(this);
40     }
41     alignViewport=null;
42     calcMan=null;
43     ap=null;
44     
45   }
46   public boolean involves(AlignmentAnnotation i)
47   {
48     return ourAnnots!=null && ourAnnots.contains(i);
49   }
50
51 }