Merge branch 'tasks/JAL-3035_remove_dasobert_dependency' into develop
[jalview.git] / src / jalview / api / FeatureColourI.java
index 3eebf6c..7bfd8a8 100644 (file)
@@ -72,7 +72,8 @@ public interface FeatureColourI
   boolean isSimpleColour();
 
   /**
-   * Answers true if the feature is coloured by label (description)
+   * Answers true if the feature is coloured by label (description) or by text
+   * value of an attribute
    * 
    * @return
    */
@@ -101,18 +102,6 @@ public interface FeatureColourI
   void setAboveThreshold(boolean b);
 
   /**
-   * 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
    * 
    * @return
@@ -189,17 +178,38 @@ public interface FeatureColourI
   boolean isColourByAttribute();
 
   /**
-   * Answers the name of the attribute used for colouring if any, or null
+   * Answers the name of the attribute (and optional sub-attribute...) used for
+   * colouring if any, or null
    * 
    * @return
    */
-  String getAttributeName();
+  String[] getAttributeName();
 
   /**
-   * Sets the name of the attribute used for colouring if any, or null to remove
-   * this property
+   * Sets the name of the attribute (and optional sub-attribute...) used for
+   * colouring if any, or null to remove this property
+   * 
+   * @return
+   */
+  void setAttributeName(String... name);
+
+  /**
+   * Answers true if colour has a threshold set, and the feature score (or other
+   * attribute selected for colouring) is outwith the threshold.
+   * <p>
+   * Answers false if not a graduated colour, or no threshold is set, or value
+   * is not outwith the threshold, or value is null or non-numeric.
+   * 
+   * @param sf
+   * @return
+   */
+  boolean isOutwithThreshold(SequenceFeature sf);
+
+  /*
+   * Answers a human-readable text description of the colour, suitable for
+   * display as a tooltip, possibly internationalised for the user's locale.
    * 
    * @return
    */
-  void setAttributeName(String name);
+  String getDescription();
 }