X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2Fseqfeatures%2FFeatureRendererModel.java;fp=src%2Fjalview%2Fviewmodel%2Fseqfeatures%2FFeatureRendererModel.java;h=84c947710949b8fba80ac52da6f9ce76f98933e1;hb=2595e9d4ee0dbbd3406a98c4e49a61ccde806479;hp=4ac4804251ead386f752523e1603829844b37a93;hpb=e20075ba805d744d7cc4976e2b8d5e5840fb0a8d;p=jalview.git diff --git a/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java b/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java index 4ac4804..84c9477 100644 --- a/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java +++ b/src/jalview/viewmodel/seqfeatures/FeatureRendererModel.java @@ -28,7 +28,7 @@ import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.renderer.seqfeatures.FeatureRenderer; import jalview.schemes.FeatureColour; -import jalview.schemes.UserColourScheme; +import jalview.util.ColorUtils; import java.awt.Color; import java.beans.PropertyChangeListener; @@ -288,8 +288,12 @@ public abstract class FeatureRendererModel implements continue; } - if ((features[i].getBegin() <= res) - && (features[i].getEnd() >= res)) + // check if start/end are at res, and if not a contact feature, that res + // lies between start and end + if ((features[i].getBegin() == res || features[i].getEnd() == res) + || (!features[i].isContactFeature() + && (features[i].getBegin() < res) && (features[i] + .getEnd() >= res))) { tmp.add(features[i]); } @@ -538,7 +542,7 @@ public abstract class FeatureRendererModel implements FeatureColourI fc = featureColours.get(featureType); if (fc == null) { - Color col = UserColourScheme.createColourFromName(featureType); + Color col = ColorUtils.createColourFromName(featureType); fc = new FeatureColour(col); featureColours.put(featureType, fc); } @@ -546,11 +550,13 @@ public abstract class FeatureRendererModel implements } /** - * calculate the render colour for a specific feature using current feature - * settings. + * 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. * * @param feature - * @return render colour for the given feature + * @return */ public Color getColour(SequenceFeature feature) { @@ -564,9 +570,16 @@ public abstract class FeatureRendererModel implements return fc.isColored(sequenceFeature); } + /** + * Answers true if the feature type is currently selected to be displayed, + * else false + * + * @param type + * @return + */ protected boolean showFeatureOfType(String type) { - return av.getFeaturesDisplayed().isVisible(type); + return type == null ? false : av.getFeaturesDisplayed().isVisible(type); } @Override @@ -575,11 +588,13 @@ public abstract class FeatureRendererModel implements featureColours.put(featureType, col); } + @Override public void setTransparency(float value) { transparency = value; } + @Override public float getTransparency() { return transparency; @@ -811,7 +826,7 @@ public abstract class FeatureRendererModel implements * @return list of groups */ @Override - public List getGroups(boolean visible) + public List getGroups(boolean visible) { if (featureGroups != null) {