X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2Fseqfeatures%2FFeatureRendererModel.java;h=c7cee0461ce990acf48d10d6b4a88c19e80f3337;hb=e47b85d0760b8573bbaa08f431297f6c4412c101;hp=a53004d6aab18f6378f44e801aacbc45d46c0d68;hpb=1f491c8c9e66b3accb8bb9eae78c7d9caa63c1ac;p=jalview.git diff --git a/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java b/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java index a53004d..c7cee04 100644 --- a/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java +++ b/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java @@ -14,13 +14,11 @@ import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.ArrayList; import java.util.Arrays; -import java.util.Enumeration; import java.util.Hashtable; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.Vector; import java.util.concurrent.ConcurrentHashMap; public abstract class FeatureRendererModel implements @@ -248,11 +246,18 @@ public abstract class FeatureRendererModel implements { ArrayList tmp = new ArrayList(); SequenceFeature[] features = sequence.getSequenceFeatures(); + + while (features == null && sequence.getDatasetSequence() != null) + { + sequence = sequence.getDatasetSequence(); + features = sequence.getSequenceFeatures(); + } + if (features != null) { for (int i = 0; i < features.length; i++) { - if (av.areFeaturesDisplayed() + if (!av.areFeaturesDisplayed() || !av.getFeaturesDisplayed().isVisible( features[i].getType())) { @@ -262,9 +267,11 @@ public abstract class FeatureRendererModel implements if (features[i].featureGroup != null && featureGroups != null && featureGroups.containsKey(features[i].featureGroup) - && !((Boolean) featureGroups.get(features[i].featureGroup)) + && !featureGroups.get(features[i].featureGroup) .booleanValue()) + { continue; + } if ((features[i].getBegin() <= res) && (features[i].getEnd() >= res)) @@ -345,7 +352,7 @@ public abstract class FeatureRendererModel implements groupDisplayed = Boolean.valueOf(newMadeVisible); featureGroups.put(fgrp, groupDisplayed); } - if (!((Boolean) groupDisplayed).booleanValue()) + if (!groupDisplayed.booleanValue()) { index++; continue; @@ -435,7 +442,7 @@ public abstract class FeatureRendererModel implements if (initOrders) { setOrder(oldRender[j], (1 - (1 + (float) j) - / (float) oldRender.length)); + / oldRender.length)); } if (allfeatures.contains(oldRender[j])) { @@ -666,9 +673,9 @@ public abstract class FeatureRendererModel implements } @Override - public Map getFeatureColours() + public Map getFeatureColours() { - return new ConcurrentHashMap<>(featureColours); + return new ConcurrentHashMap(featureColours); } /** @@ -799,7 +806,7 @@ public abstract class FeatureRendererModel implements } if (featureGroups.containsKey(group)) { - return ((Boolean) featureGroups.get(group)).booleanValue(); + return featureGroups.get(group).booleanValue(); } if (newGroupsVisible) { @@ -825,7 +832,7 @@ public abstract class FeatureRendererModel implements for (Object grp : featureGroups.keySet()) { - Boolean state = (Boolean) featureGroups.get(grp); + Boolean state = featureGroups.get(grp); if (state.booleanValue() == visible) { gp.add(grp); @@ -854,7 +861,7 @@ public abstract class FeatureRendererModel implements featureGroups.put(gst, new Boolean(visible)); if (st != null) { - rdrw = rdrw || (visible != ((Boolean) st).booleanValue()); + rdrw = rdrw || (visible != st.booleanValue()); } } if (rdrw) @@ -900,7 +907,7 @@ public abstract class FeatureRendererModel implements { for (int i = 0; i < typ.length; i++) { - if (feature_disp.isVisible(typ[i])) + if (!feature_disp.isVisible(typ[i])) { typ[i] = null; }