X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fapi%2FFeatureRenderer.java;h=8aa28581842e88b557b84de0232f8f269119c32b;hb=1b378087ec2d5be9b290cd63c45bfdb9e75269fb;hp=ef0abbd1b95ea9487f33a1bebf35c3bb293ebb86;hpb=f8b17a9e7363b8a9e7cd12d61bc6d611c7c97d7d;p=jalview.git diff --git a/src/jalview/api/FeatureRenderer.java b/src/jalview/api/FeatureRenderer.java index ef0abbd..8aa2858 100644 --- a/src/jalview/api/FeatureRenderer.java +++ b/src/jalview/api/FeatureRenderer.java @@ -20,9 +20,10 @@ */ package jalview.api; +import jalview.datamodel.MappedFeatures; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; -import jalview.util.matcher.KeyedMatcherSetI; +import jalview.datamodel.features.FeatureMatcherSetI; import java.awt.Color; import java.awt.Graphics; @@ -161,15 +162,18 @@ public interface FeatureRenderer List findFeaturesAtColumn(SequenceI sequence, int column); /** - * Returns features at the specified residue position on the given sequence. - * Non-positional features are not included. + * Returns features at the specified residue positions on the given sequence. + * Non-positional features are not included. Features are returned in render + * order of their feature type (last is on top). Within feature type, ordering + * is undefined. * * @param sequence - * @param resNo - * residue position (start..) + * @param fromResNo + * @param toResNo * @return */ - List findFeaturesAtResidue(SequenceI sequence, int resNo); + List findFeaturesAtResidue(SequenceI sequence, + int fromResNo, int toResNo); /** * get current displayed types, in ordering of rendering (on top last) @@ -223,14 +227,14 @@ public interface FeatureRenderer * @param featureType * @return */ - KeyedMatcherSetI getFeatureFilter(String featureType); + FeatureMatcherSetI getFeatureFilter(String featureType); /** - * Answers a shallow copy of the feature filters map + * Answers the feature filters map * * @return */ - public Map getFeatureFilters(); + public Map getFeatureFilters(); /** * Sets the filters for the feature type, or removes them if a null or empty @@ -239,14 +243,14 @@ public interface FeatureRenderer * @param featureType * @param filter */ - void setFeatureFilter(String featureType, KeyedMatcherSetI filter); + void setFeatureFilter(String featureType, FeatureMatcherSetI filter); /** * Replaces all feature filters with the given map * * @param filters */ - void setFeatureFilters(Map filters); + void setFeatureFilters(Map filters); /** * Returns the colour for a particular feature instance. This includes @@ -255,14 +259,42 @@ public interface FeatureRenderer *

* Returns null if *

    - *
  • feature type is not visible, or
  • *
  • feature group is not visible, or
  • *
  • feature values lie outside any colour threshold, or
  • *
  • feature is excluded by filter conditions
  • *
+ * 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 + *
    + *
  • its feature type is set to visible
  • + *
  • its feature group is either null, or set to visible
  • + *
  • it is not excluded by a colour threshold on score or other numeric + * attribute
  • + *
  • it is not excluded by a filter condition
  • + *
+ * + * @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); }