JAL-3285 small code changes to ConsensusThread not included in merge
[jalview.git] / src / jalview / workers / ConsensusThread.java
index 5c55d48..f5cad71 100644 (file)
@@ -28,7 +28,7 @@ import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
 import jalview.datamodel.ProfilesI;
 import jalview.datamodel.SequenceI;
-import jalview.schemes.ColourSchemeI;
+import jalview.renderer.ResidueShaderI;
 
 public class ConsensusThread extends AlignCalcWorker
 {
@@ -58,12 +58,13 @@ public class ConsensusThread extends AlignCalcWorker
       }
       while (!calcMan.notifyWorking(this))
       {
-        // System.err.println("Thread (Consensus"+Thread.currentThread().getName()+") Waiting around.");
+        // System.err.println("Thread
+        // (Consensus"+Thread.currentThread().getName()+") Waiting around.");
         try
         {
           if (ap != null)
           {
-            ap.paintAlignment(false);
+            ap.paintAlignment(false, false);
           }
           Thread.sleep(200);
         } catch (Exception ex)
@@ -92,7 +93,7 @@ public class ConsensusThread extends AlignCalcWorker
 
       if (ap != null)
       {
-        ap.paintAlignment(true);
+        ap.paintAlignment(true, true);
       }
     } catch (OutOfMemoryError error)
     {
@@ -117,9 +118,13 @@ public class ConsensusThread extends AlignCalcWorker
   protected void eraseConsensus(int aWidth)
   {
     AlignmentAnnotation consensus = getConsensusAnnotation();
-    consensus.annotations = new Annotation[aWidth];
+    if (consensus != null)
+    {
+      consensus.annotations = new Annotation[aWidth];
+    }
     AlignmentAnnotation gap = getGapAnnotation();
-    if (gap!=null) {
+    if (gap != null)
+    {
       gap.annotations = new Annotation[aWidth];
     }
   }
@@ -132,8 +137,8 @@ public class ConsensusThread extends AlignCalcWorker
 
     SequenceI[] aseqs = getSequences();
     int width = alignment.getWidth();
-    ProfilesI hconsensus = AAFrequency.calculate(aseqs, width, 0,
-            width, true);
+    ProfilesI hconsensus = AAFrequency.calculate(aseqs, width, 0, width,
+            true);
 
     alignViewport.setSequenceConsensusHash(hconsensus);
     setColourSchemeConsensus(hconsensus);
@@ -152,11 +157,10 @@ public class ConsensusThread extends AlignCalcWorker
    */
   protected void setColourSchemeConsensus(ProfilesI hconsensus)
   {
-    ColourSchemeI globalColourScheme = alignViewport
-            .getGlobalColourScheme();
-    if (globalColourScheme != null)
+    ResidueShaderI cs = alignViewport.getResidueShading();
+    if (cs != null)
     {
-      globalColourScheme.setConsensus(hconsensus);
+      cs.setConsensus(hconsensus);
     }
   }
 
@@ -201,7 +205,7 @@ public class ConsensusThread extends AlignCalcWorker
       AlignmentAnnotation gap = getGapAnnotation();
       if (gap != null)
       {
-        deriveGap(gap, hconsensus);
+        deriveOccupancy(gap, hconsensus);
       }
     }
   }
@@ -218,32 +222,28 @@ public class ConsensusThread extends AlignCalcWorker
   protected void deriveConsensus(AlignmentAnnotation consensusAnnotation,
           ProfilesI hconsensus)
   {
-
     long nseq = getSequences().length;
     AAFrequency.completeConsensus(consensusAnnotation, hconsensus,
-            hconsensus.getStartColumn(),
-            hconsensus.getEndColumn() + 1,
+            hconsensus.getStartColumn(), hconsensus.getEndColumn() + 1,
             alignViewport.isIgnoreGapsConsensus(),
             alignViewport.isShowSequenceLogo(), nseq);
   }
-    /**
-     * Convert the computed consensus data into a gap annotation row for
-     * display.
-     * 
-     * @param gapAnnotation
-     *          the annotation to be populated
-     * @param hconsensus
-     *          the computed consensus data
-     */
-    protected void deriveGap(AlignmentAnnotation gapAnnotation,
-            ProfilesI hconsensus)
-    {
 
-      long nseq = getSequences().length;
-      AAFrequency.completeGapAnnot(gapAnnotation, hconsensus,
+  /**
+   * Convert the computed consensus data into a gap annotation row for display.
+   * 
+   * @param gapAnnotation
+   *          the annotation to be populated
+   * @param hconsensus
+   *          the computed consensus data
+   */
+  protected void deriveGap(AlignmentAnnotation gapAnnotation,
+          ProfilesI hconsensus)
+  {
+    long nseq = getSequences().length;
+    AAFrequency.completeGapAnnot(gapAnnotation, hconsensus,
             hconsensus.getStartColumn(), hconsensus.getEndColumn() + 1,
             nseq);
-
   }
 
   /**