Merge branch 'develop' into features/JAL-2094_colourInterface
[jalview.git] / src / jalview / api / FeatureColourI.java
index f68d7a7..922a038 100644 (file)
@@ -6,8 +6,7 @@ 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
    */
@@ -35,13 +34,22 @@ public interface FeatureColourI
   ColorI 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 +58,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 +68,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,14 +89,7 @@ public interface FeatureColourI
    */
   float getThreshold();
 
-  float getMax();
-
-  /**
-   * Returns the minimum score of the graduated colour range
-   * 
-   * @return
-   */
-  float getMin();
+  void setThreshold(float f);
 
   /**
    * Answers true if either isAboveThreshold or isBelowThreshold answers true
@@ -90,12 +99,15 @@ public interface FeatureColourI
   boolean hasThreshold();
 
   /**
-   * Returns the computed colour for the given sequence feature
+   * Answers true if the colour varies between the actual minimum and maximum
+   * score values of the feature, or false if between absolute minimum and
+   * maximum values (or if not a graduated colour).
    * 
-   * @param feature
    * @return
    */
-  ColorI getColor(SequenceFeature feature);
+  boolean isAutoScaled();
+
+  void setAutoScaled(boolean b);
 
   /**
    * Answers true if the feature has a simple colour, or is coloured by label,
@@ -123,21 +135,25 @@ public interface FeatureColourI
    */
   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);
+  /**
+   * Returns the maximum score of the graduated colour range
+   * 
+   * @return
+   */
+  float getMax();
 
-  void setColourByLabel(boolean b);
+  /**
+   * Returns the minimum score of the graduated colour range
+   * 
+   * @return
+   */
+  float getMin();
 
-  void setGraduatedColour(boolean b);
+  /**
+   * Returns the computed colour for the given sequence feature
+   * 
+   * @param feature
+   * @return
+   */
+  ColorI getColor(SequenceFeature feature);
 }