JAL-2791 check feature visibility when selecting columns
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 30 Oct 2017 16:58:23 +0000 (16:58 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Mon, 30 Oct 2017 16:58:23 +0000 (16:58 +0000)
src/jalview/controller/AlignViewController.java

index 460c2b3..cc5a184 100644 (file)
@@ -36,6 +36,7 @@ import jalview.datamodel.SequenceI;
 import jalview.io.DataSourceType;
 import jalview.io.FeaturesFile;
 import jalview.util.MessageManager;
+import jalview.viewmodel.seqfeatures.FeatureRendererModel;
 
 import java.awt.Color;
 import java.util.BitSet;
@@ -223,9 +224,13 @@ public class AlignViewController implements AlignViewControllerI
    * @param bs
    * @return
    */
-  static int findColumnsWithFeature(String featureType,
+  int findColumnsWithFeature(String featureType,
           SequenceCollectionI sqcol, BitSet bs)
   {
+    FeatureRendererModel fr = (FeatureRendererModel) alignPanel
+            .getFeatureRenderer();
+    List<String> visibleFeatures = fr.getDisplayedFeatureTypes();
+
     final int startColumn = sqcol.getStartRes() + 1; // converted to base 1
     final int endColumn = sqcol.getEndRes() + 1;
     List<SequenceI> seqs = sqcol.getSequences();
@@ -245,6 +250,13 @@ public class AlignViewController implements AlignViewControllerI
 
         for (SequenceFeature sf : sfs)
         {
+          { 
+            if (!visibleFeatures.contains(sf.getType()) 
+                    || fr.getColour(sf) == null) // could pull up getColour to FeatureRenderer interface 
+            { 
+              continue; 
+            }
+          }
           int sfStartCol = sq.findIndex(sf.getBegin());
           int sfEndCol = sq.findIndex(sf.getEnd());