--- /dev/null
+package jalview.api;
+
+import java.awt.Color;
+
+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
+ */
+ Color getColour();
+
+ /**
+ * Returns the minimum colour (when isGraduatedColour answers true)
+ *
+ * @return
+ */
+ Color getMinColour();
+
+ /**
+ * Returns the maximum colour (when isGraduatedColour answers true)
+ *
+ * @return
+ */
+ Color 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();
+
+ /**
+ * Answers true if ?
+ *
+ * @return
+ */
+ boolean isLowToHigh();
+}