Introduced new AlignCalcWorker/manager interface.
[jalview.git] / src / jalview / workers / AlignCalcWorker.java
diff --git a/src/jalview/workers/AlignCalcWorker.java b/src/jalview/workers/AlignCalcWorker.java
new file mode 100644 (file)
index 0000000..41022e5
--- /dev/null
@@ -0,0 +1,44 @@
+/**
+ * 
+ */
+package jalview.workers;
+
+import jalview.api.AlignCalcManagerI;
+import jalview.api.AlignCalcWorkerI;
+import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
+
+/**
+ * Base class for alignment calculation workers 
+ * @author jimp
+ *
+ */
+public abstract class AlignCalcWorker implements AlignCalcWorkerI
+{
+  /**
+   * manager and data source for calculations
+   */
+  protected AlignViewportI alignViewport;
+  protected AlignCalcManagerI calcMan;
+  protected AlignmentViewPanel ap;
+
+  public AlignCalcWorker(AlignViewportI alignViewport,
+          AlignmentViewPanel alignPanel)
+  {
+    this.alignViewport = alignViewport;
+    calcMan=alignViewport.getCalcManager();
+    ap = alignPanel;    
+  }
+  protected void abortAndDestroy()
+  {
+    if (calcMan!=null) {
+      calcMan.workerComplete(this);
+    }
+    alignViewport=null;
+    calcMan=null;
+    ap=null;
+    
+  }
+
+
+}