JAL-4071 colour rows according to simple/graduated feature colour, beginning of suppo...
[jalview.git] / src / jalview / workers / ColumnCounterSetWorker.java
index 3a4bcc4..0858527 100644 (file)
@@ -29,6 +29,7 @@ import jalview.api.AlignmentViewPanel;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.AlignmentI;
 import jalview.datamodel.Annotation;
+import jalview.datamodel.MappedFeatures;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
 import jalview.renderer.seqfeatures.FeatureRenderer;
@@ -147,11 +148,6 @@ class ColumnCounterSetWorker extends AlignCalcWorker
       max[crow] = 0;
     }
 
-    int[] minC = counter.getMinColour();
-    int[] maxC = counter.getMaxColour();
-    Color minColour = new Color(minC[0], minC[1], minC[2]);
-    Color maxColour = new Color(maxC[0], maxC[1], maxC[2]);
-
     for (int col = 0; col < width; col++)
     {
       int[] count = counts[col];
@@ -181,6 +177,11 @@ class ColumnCounterSetWorker extends AlignCalcWorker
 
     for (int anrow = 0; anrow < rows; anrow++)
     {
+      int[] minC = counter.getMinColour(anrow);
+      int[] maxC = counter.getMaxColour(anrow);
+      Color minColour = new Color(minC[0], minC[1], minC[2]);
+      Color maxColour = new Color(maxC[0], maxC[1], maxC[2]);
+
       Annotation[] anns = new Annotation[width];
       long rmax = 0;
       /*
@@ -276,6 +277,12 @@ class ColumnCounterSetWorker extends AlignCalcWorker
      */
     // see JAL-2075
     List<SequenceFeature> features = fr.findFeaturesAtColumn(seq, col + 1);
+    if (fr.hasRenderOrder())
+    {
+      MappedFeatures mappedFeatres = fr.findComplementFeaturesAtResidue(seq,
+              seq.findPosition(col));
+      features.addAll(mappedFeatres.features);
+    }
     int[] count = this.counter.count(String.valueOf(res), features);
     return count;
   }