JAL-3187 (hacked up) show complement features on structure/Overview
[jalview.git] / src / jalview / renderer / seqfeatures / FeatureRenderer.java
index 6687e6a..fc8731d 100644 (file)
@@ -25,6 +25,8 @@ import jalview.api.FeatureColourI;
 import jalview.datamodel.Range;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
+import jalview.gui.AlignFrame;
+import jalview.gui.Desktop;
 import jalview.util.Comparison;
 import jalview.viewmodel.seqfeatures.FeatureRendererModel;
 
@@ -304,7 +306,10 @@ public class FeatureRenderer extends FeatureRendererModel
       List<SequenceFeature> overlaps = seq.getFeatures().findFeatures(
               visiblePositions.getBegin(), visiblePositions.getEnd(), type);
 
-      // filterFeaturesForDisplay(overlaps, fc);
+      if (fc.isSimpleColour())
+      {
+        filterFeaturesForDisplay(overlaps);
+      }
 
       for (SequenceFeature sf : overlaps)
       {
@@ -438,6 +443,30 @@ public class FeatureRenderer extends FeatureRendererModel
     updateFeatures();
 
     /*
+     * show complement features on top (if configured to show them)
+     */
+    if (av.isShowComplementFeatures())
+    {
+      AlignViewportI complement = av.getCodingComplement();
+      AlignFrame af = Desktop.getAlignFrameFor(complement);
+      FeatureRendererModel fr2 = af.getFeatureRenderer();
+      List<SequenceFeature> features = fr2.findComplementFeaturesAtResidue(
+              seq, seq.findPosition(column));
+      // todo: ensure ordered by feature render order
+      for (SequenceFeature sf : features)
+      {
+        if (!fr2.featureGroupNotShown(sf))
+        {
+          Color col = fr2.getColour(sf);
+          if (col != null)
+          {
+            return col;
+          }
+        }
+      }
+    }
+
+    /*
      * inspect features in reverse renderOrder (the last in the array is 
      * displayed on top) until we find one that is rendered at the position
      */