* Returns the configured colour for a particular feature instance. This
* includes calculation of 'colour by label', or of a graduated score colour,
* if applicable. It does not take into account feature visibility or colour
- * transparency.
+ * transparency. Returns null for a score feature whose score value lies
+ * outside any colour threshold.
*
* @param feature
* @return
}
/**
- * Answers true unless the feature has a graduated colour scheme and the
- * feature value lies outside the current threshold for display
- *
- * @param sequenceFeature
- * @return
- */
- protected boolean showFeature(SequenceFeature sequenceFeature)
- {
- FeatureColourI fc = getFeatureStyle(sequenceFeature.type);
- return fc.isColored(sequenceFeature);
- }
-
- /**
* Answers true if the feature type is currently selected to be displayed,
* else false
*
/**
* Removes from the list of features any that have a feature group that is not
* displayed, or duplicate the location of a feature of the same type (unless
- * a graduated colour scheme is applied)
+ * a graduated colour scheme or colour by label is applied). Should be used
+ * only for features of the same feature colour (which normally implies the
+ * same feature type).
*
* @param features
* @param fc
return;
}
SequenceFeatures.sortFeatures(features, true);
- boolean graduated = fc != null && fc.isGraduatedColour();
+ boolean simpleColour = fc == null || fc.isSimpleColour();
SequenceFeature lastFeature = null;
Iterator<SequenceFeature> it = features.iterator();
* (checking type and isContactFeature as a fail-safe here, although
* currently they are guaranteed to match in this context)
*/
- if (!graduated)
+ if (simpleColour)
{
if (lastFeature != null && sf.getBegin() == lastFeature.getBegin()
&& sf.getEnd() == lastFeature.getEnd()