X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FFeatureRenderer.java;h=54303037f19109bc4c17c3c8ddbb2c5e54249a6a;hb=e134764b7eec841cb56a417250f2dd898680f985;hp=839119ddeff232ff3a0e85383e9389d32b834742;hpb=846f3f1ad573cad309d41356af68887a4a3348eb;p=jalview.git diff --git a/src/jalview/api/FeatureRenderer.java b/src/jalview/api/FeatureRenderer.java index 839119d..5430303 100644 --- a/src/jalview/api/FeatureRenderer.java +++ b/src/jalview/api/FeatureRenderer.java @@ -20,8 +20,10 @@ */ package jalview.api; +import jalview.datamodel.MappedFeatures; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; +import jalview.datamodel.features.FeatureMatcherSetI; import java.awt.Color; import java.awt.Graphics; @@ -38,20 +40,29 @@ public interface FeatureRenderer { /** - * Returns the combined feature colour for a given sequence and column - * position, taking into account feature colour schemes, ordering, feature and - * feature group visibility, and transparency. Returns null if there is no - * visible feature at the position. + * Computes the feature colour for a given sequence and column position, + * taking into account sequence feature locations, feature colour schemes, + * render ordering, feature and feature group visibility, and transparency. *
- * The Graphics argument is optional and may be null if no transparency is - * applied. With feature transparency, visible features are written to the - * graphics context and the composite colour can be read off. + * The graphics argument should be provided if transparency is applied + * (getTransparency() < 1). With feature transparency, visible features are + * written to the graphics context and the composite colour may be read off + * from it. In this case, the returned feature colour is not the composite + * colour but that of the last feature drawn. *
- * This is provided for use by Structure Viewers and the Overview Window to - * get the feature colour of the rendered sequence. + * If no transparency applies, then the graphics argument may be null, and the + * returned colour is the one that would be drawn for the feature. + *
+ * Returns null if there is no visible feature at the position. + *
+ * This is provided to support rendering of feature colours other than on the
+ * sequence alignment, including by structure viewers and the overview window.
+ * Note this method takes no account of whether the sequence or column is
+ * hidden.
*
* @param sequence
* @param column
+ * aligned column position (1..)
* @param g
* @return
*/
@@ -123,7 +134,7 @@ public interface FeatureRenderer
List
+ * Returns null if
+ *
+ *
+ * This method does not check feature type visibility.
+ *
+ * @param feature
+ * @return
+ */
+ Color getColour(SequenceFeature feature);
+
+ /**
+ * Answers true if feature would be shown, else false. A feature is shown if
+ *
+ *
+ *
+ * @param feature
+ * @return
+ */
+ boolean isVisible(SequenceFeature feature);
+
+ /**
+ * Answers a bean containing a mapping, and a list of visible features in this
+ * alignment at a position (or range) which is mappable from the given
+ * sequence residue position in a mapped alignment. Features are returned in
+ * render order of feature type (on top last), with order within feature type
+ * undefined. If no features or mapping are found, answers null.
+ *
+ * @param sequence
+ * @param pos
+ * @return
+ */
+ MappedFeatures findComplementFeaturesAtResidue(SequenceI sequence,
+ int pos);
+
+ /**
+ * Sends a message to let any registered parties know that something about
+ * feature rendering has changed
+ */
+ void notifyFeaturesChanged();
+
}