temp push
[jalview.git] / src / jalview / viewmodel / seqfeatures / FeatureRendererModel.java
index 459a28b..5ca3ac5 100644 (file)
  */
 package jalview.viewmodel.seqfeatures;
 
+import java.awt.Color;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+
 import jalview.api.AlignViewportI;
 import jalview.api.FeatureColourI;
 import jalview.api.FeaturesDisplayedI;
@@ -37,21 +52,7 @@ import jalview.datamodel.features.SequenceFeatures;
 import jalview.renderer.seqfeatures.FeatureRenderer;
 import jalview.schemes.FeatureColour;
 import jalview.util.ColorUtils;
-
-import java.awt.Color;
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
+import jalview.util.Platform;
 
 public abstract class FeatureRendererModel
         implements jalview.api.FeatureRenderer
@@ -327,12 +328,14 @@ public abstract class FeatureRendererModel
             visibleTypes);
 
     /*
-     * include features unless they are hidden (have no colour), based on 
-     * feature group visibility, or a filter or colour threshold
+     * include features unless their feature group is not displayed, or
+     * they are hidden (have no colour) based on a filter or colour threshold
      */
+    
+    // BH! check -- !featureGroupNotShown(sf) is from applet branch. 
     for (SequenceFeature sf : features)
     {
-      if (getColour(sf) != null)
+      if (!featureGroupNotShown(sf) && getColour(sf) != null)
       {
         result.add(sf);
       }
@@ -1045,6 +1048,16 @@ public abstract class FeatureRendererModel
    */
   public void filterFeaturesForDisplay(List<SequenceFeature> features)
   {
+// BH! check -- what was the problem here? How is JalviewJS's IntervalStore different from 
+    // other IntervalStore?
+    /*
+     * fudge: JalviewJS's IntervalStore lacks the sort method called :-(
+     */
+    if (Platform.isJS())
+    {
+      return;
+    }
+
     /*
      * don't remove 'redundant' features if 
      * - transparency is applied (feature count affects depth of feature colour)
@@ -1236,7 +1249,7 @@ public abstract class FeatureRendererModel
         int toRes = match.getEnd();
         mapFrom = match.getSequence();
         List<SequenceFeature> fs = findFeaturesAtResidue(
-                match.getSequence(), fromRes, toRes);
+                mapFrom, fromRes, toRes);
         for (SequenceFeature sf : fs)
         {
           if (!found.contains(sf))