package jalview.api; import jalview.datamodel.SequenceFeature; public interface FeatureColourI { /** * Answers true when either isColourByLabel, isAboveThreshold or * isBelowThreshold answers true * * @return */ boolean isGraduatedColour(); /** * Returns the feature colour (when isGraduatedColour answers false) * * @return */ ColorI getColour(); /** * Returns the minimum colour (when isGraduatedColour answers true) * * @return */ ColorI getMinColour(); /** * Returns the maximum colour (when isGraduatedColour answers true) * * @return */ ColorI getMaxColour(); /** * Answers true if the feature is coloured by label (description); only * applicable when isGraduatedColour answers true * * @return */ boolean isColourByLabel(); /** * Answers true if the feature is coloured below a threshold value; only * applicable when isGraduatedColour answers true * * @return */ boolean isBelowThreshold(); /** * Answers true if the feature is coloured above a threshold value; only * applicable when isGraduatedColour answers true * * @return */ boolean isAboveThreshold(); /** * Answers true if the threshold is the min (or max) of the colour range; only * applicable when isGraduatedColour answers true * * @return */ boolean isThresholdMinMax(); /** * Returns the threshold value (if any), else zero * * @return */ float getThreshold(); 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 */ ColorI getColor(SequenceFeature feature); /** * 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 isColored(SequenceFeature feature); /** * Update the min-max range for a graduated colour scheme * * @param min * @param max */ void updateBounds(float min, float max); /** * Returns the colour in Jalview features file format * * @return */ String toJalviewFormat(String featureType); void setThreshold(float f); boolean isAutoScaled(); void setAutoScaled(boolean b); boolean isSimpleColour(); void setAboveThreshold(boolean b); void setThresholdMinMax(boolean b); void setBelowThreshold(boolean b); void setColourByLabel(boolean b); void setGraduatedColour(boolean b); }