X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fapi%2FFeatureColourI.java;h=4dbb1bb0f0d95111e06281ce42e6894f1d0bf419;hb=9bc0c6be2b195af9fed245e9e7ae27d73196fac8;hp=2e82afd66592d0af28d42155af701a7b8fe3bc67;hpb=3e943322f9d66e8718316ba8bd03669adce65149;p=jalview.git diff --git a/src/jalview/api/FeatureColourI.java b/src/jalview/api/FeatureColourI.java index 2e82afd..4dbb1bb 100644 --- a/src/jalview/api/FeatureColourI.java +++ b/src/jalview/api/FeatureColourI.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.api; import jalview.datamodel.SequenceFeature; @@ -14,8 +34,6 @@ public interface FeatureColourI */ boolean isGraduatedColour(); - void setGraduatedColour(boolean b); - /** * Returns the feature colour (when isGraduatedColour answers false) * @@ -38,6 +56,14 @@ public interface FeatureColourI Color getMaxColour(); /** + * Returns the 'no value' colour (used when a feature lacks score, or the + * attribute, being used for colouring) + * + * @return + */ + Color getNoColour(); + + /** * Answers true if the feature has a single colour, i.e. if isColourByLabel() * and isGraduatedColour() both answer false * @@ -46,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 */ @@ -75,26 +102,21 @@ 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 + * Returns the threshold value (if any), else zero * * @return */ - boolean isThresholdMinMax(); + float getThreshold(); - void setThresholdMinMax(boolean b); + void setThreshold(float f); /** - * Returns the threshold value (if any), else zero + * 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). * * @return */ - float getThreshold(); - - void setThreshold(float f); - boolean isAutoScaled(); void setAutoScaled(boolean b); @@ -121,7 +143,9 @@ public interface FeatureColourI boolean hasThreshold(); /** - * Returns the computed colour for the given sequence feature + * Returns the computed colour for the given sequence feature. Answers null if + * the score of this feature instance is outside the range to render (if any), + * i.e. lies below or above a configured threshold. * * @param feature * @return @@ -129,18 +153,10 @@ public interface FeatureColourI Color getColor(SequenceFeature feature); /** - * Answers true if the feature has a simple colour, or is coloured by label, - * or has a graduated colour and the score of this feature instance is within - * the range to render (if any), i.e. does not lie below or above any - * threshold set. - * - * @param feature - * @return - */ - boolean isColored(SequenceFeature feature); - - /** - * Update the min-max range for a graduated colour scheme + * Update the min-max range for a graduated colour scheme. Note that the + * colour scheme may be configured to colour by feature score, or a + * (numeric-valued) attribute - the caller should ensure that the correct + * range is being set. * * @param min * @param max @@ -153,4 +169,27 @@ public interface FeatureColourI * @return */ String toJalviewFormat(String featureType); + + /** + * Answers true if colour is by attribute text or numerical value + * + * @return + */ + boolean isColourByAttribute(); + + /** + * Answers the name of the attribute (and optional sub-attribute...) used for + * colouring if any, or null + * + * @return + */ + String[] getAttributeName(); + + /** + * 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); }