*/
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;
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
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);
}
*/
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)
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))