X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FFeatureColourI.java;h=0a333caf761a51499a313c7f2cecf91798574bc9;hb=0b1c761dfaa8242f122cf868e8897a06ec6eb727;hp=d8363f4aeafa6d661191dffed71b4ddc8955cddc;hpb=8b9c85b131fbaa1b9b29c489b661089c0ea404bd;p=jalview.git diff --git a/src/jalview/api/FeatureColourI.java b/src/jalview/api/FeatureColourI.java index d8363f4..0a333ca 100644 --- a/src/jalview/api/FeatureColourI.java +++ b/src/jalview/api/FeatureColourI.java @@ -1,18 +1,21 @@ package jalview.api; +import jalview.datamodel.SequenceFeature; + import java.awt.Color; public interface FeatureColourI { /** - * Answers true when either isColourByLabel, isAboveThreshold or - * isBelowThreshold answers true + * Answers true when the feature colour varies across the score range * * @return */ boolean isGraduatedColour(); + void setGraduatedColour(boolean b); + /** * Returns the feature colour (when isGraduatedColour answers false) * @@ -35,13 +38,22 @@ public interface FeatureColourI Color getMaxColour(); /** - * Answers true if the feature is coloured by label (description); only - * applicable when isGraduatedColour answers true + * Answers true if the feature has a single colour, i.e. if isColourByLabel() + * and isGraduatedColour() both answer false + * + * @return + */ + boolean isSimpleColour(); + + /** + * Answers true if the feature is coloured by label (description) * * @return */ boolean isColourByLabel(); + void setColourByLabel(boolean b); + /** * Answers true if the feature is coloured below a threshold value; only * applicable when isGraduatedColour answers true @@ -50,6 +62,8 @@ public interface FeatureColourI */ boolean isBelowThreshold(); + void setBelowThreshold(boolean b); + /** * Answers true if the feature is coloured above a threshold value; only * applicable when isGraduatedColour answers true @@ -58,14 +72,20 @@ public interface FeatureColourI */ boolean isAboveThreshold(); + void setAboveThreshold(boolean b); + /** - * Answers true if the threshold is the min (or max) of the colour range; only - * applicable when isGraduatedColour answers true + * Answers true if the threshold is the minimum value (when + * isAboveThreshold()) or maximum value (when isBelowThreshold()) of the + * colour range; only applicable when isGraduatedColour and either + * isAboveThreshold() or isBelowThreshold() answers true * * @return */ boolean isThresholdMinMax(); + void setThresholdMinMax(boolean b); + /** * Returns the threshold value (if any), else zero * @@ -73,10 +93,57 @@ public interface FeatureColourI */ float getThreshold(); + void setThreshold(float f); + + boolean isAutoScaled(); + + void setAutoScaled(boolean b); + + /** + * Returns the maximum score of the graduated colour range + * + * @return + */ + float getMax(); + + /** + * Returns the minimum score of the graduated colour range + * + * @return + */ + float getMin(); + + /** + * Answers true if either isAboveThreshold or isBelowThreshold answers true + * + * @return + */ + boolean hasThreshold(); + + /** + * Returns the computed colour for the given sequence feature + * + * @param feature + * @return + */ + Color getColor(SequenceFeature feature); + /** - * Answers true if ? + * Answers true if the feature has a simple colour, or is coloured by label, + * or has a graduated colour and the score of this feature instance is within + * the range to render (if any), i.e. does not lie below or above any + * threshold set. * + * @param feature * @return */ - boolean isLowToHigh(); + boolean isColored(SequenceFeature feature); + + /** + * Update the min-max range for a graduated colour scheme + * + * @param min + * @param max + */ + void updateBounds(float min, float max); }