JAL-3878 Add getCalcName to AlignCalcWorkerI.
[jalview.git] / src / jalview / workers / ComplementConsensusThread.java
index 81983b2..49877e9 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b2)
- * Copyright (C) 2015 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -25,7 +25,6 @@ import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
-import jalview.datamodel.SequenceI;
 
 import java.util.ConcurrentModificationException;
 import java.util.Hashtable;
@@ -47,13 +46,19 @@ public class ComplementConsensusThread extends ConsensusThread
   }
 
   @Override
+  public String getCalcName()
+  {
+    return "Complement Consensus";
+  }
+
+  @Override
   protected AlignmentAnnotation getConsensusAnnotation()
   {
     return alignViewport.getComplementConsensusAnnotation();
   }
 
   @Override
-  protected Hashtable[] getViewportConsensus()
+  protected Hashtable<String, Object>[] getViewportConsensus()
   {
     return alignViewport.getComplementConsensusHash();
   }
@@ -64,9 +69,11 @@ public class ComplementConsensusThread extends ConsensusThread
   @Override
   protected void computeConsensus(AlignmentI alignment)
   {
-    Hashtable[] hconsensus = new Hashtable[alignment.getWidth()];
+    @SuppressWarnings("unchecked")
+    Hashtable<String, Object>[] hconsensus = new Hashtable[alignment
+            .getWidth()];
 
-    SequenceI[] aseqs = getSequences();
+    // SequenceI[] aseqs = getSequences();
 
     /*
      * Allow 3 tries at this, since this thread can start up while we are still
@@ -96,12 +103,23 @@ public class ComplementConsensusThread extends ConsensusThread
    * @param consensusData
    *          the computed consensus data
    */
-  @Override
   protected void deriveConsensus(AlignmentAnnotation consensusAnnotation,
-          Hashtable[] consensusData)
+          Hashtable<String, Object>[] consensusData)
   {
     AAFrequency.completeCdnaConsensus(consensusAnnotation, consensusData,
             alignViewport.isShowSequenceLogo(), getSequences().length);
   }
 
+  @Override
+  public void updateResultAnnotation(boolean immediate)
+  {
+    AlignmentAnnotation consensus = getConsensusAnnotation();
+    Hashtable<String, Object>[] hconsensus = getViewportConsensus();
+    if (immediate || !calcMan.isWorking(this) && consensus != null
+            && hconsensus != null)
+    {
+      deriveConsensus(consensus, hconsensus);
+    }
+  }
+
 }