package jalview.api;
import jalview.datamodel.SequenceFeature;
-import jalview.util.matcher.KeyedMatcherSetI;
import java.awt.Color;
* @return
*/
String toJalviewFormat(String featureType);
-
- /**
- * Sets the attribute filter conditions, or removes them if the argument is
- * null
- *
- * @param filter
- */
- public void setAttributeFilters(KeyedMatcherSetI filter);
-
- /**
- * Answers the attribute value filters for the colour scheme, or null if no
- * filters are set
- *
- * @return
- */
- public KeyedMatcherSetI getAttributeFilters();
}
import jalview.datamodel.SequenceFeature;
import jalview.util.ColorUtils;
import jalview.util.Format;
-import jalview.util.matcher.KeyedMatcherSetI;
import java.awt.Color;
import java.util.StringTokenizer;
-import java.util.function.Function;
/**
* A class that wraps either a simple colour or a graduated colour
final private float deltaBlue;
- /*
- * optional filter(s) by attribute values
- */
- private KeyedMatcherSetI attributeFilters;
-
/**
* Parses a Jalview features file format colour descriptor
* [label|][mincolour|maxcolour
base = fc.base;
range = fc.range;
isHighToLow = fc.isHighToLow;
- attributeFilters = fc.attributeFilters;
setAboveThreshold(fc.isAboveThreshold());
setBelowThreshold(fc.isBelowThreshold());
setThreshold(fc.getThreshold());
@Override
public Color getColor(SequenceFeature feature)
{
- if (!matchesFilters(feature))
- {
- return null;
- }
-
if (isColourByLabel())
{
return ColorUtils.createColourFromName(feature.getDescription());
}
/**
- * Answers true if either there are no attribute value filters defined, or the
- * feature matches all of the filter conditions. Answers false if the feature
- * fails the filter conditions.
- *
- * @param feature
- *
- * @return
- */
- boolean matchesFilters(SequenceFeature feature)
- {
- if (attributeFilters == null)
- {
- return true;
- }
-
- Function<String, String> valueProvider = key -> feature.otherDetails == null ? null
- : (feature.otherDetails.containsKey(key) ? feature.otherDetails
- .get(key).toString() : null);
- return attributeFilters.matches(valueProvider);
- }
-
- /**
* Returns the maximum score of the graduated colour range
*
* @return
return String.format("%s\t%s", featureType, colourString);
}
- /**
- * Adds an attribute filter
- *
- * @param attName
- * @param filter
- */
- @Override
- public void setAttributeFilters(KeyedMatcherSetI matcher)
- {
- attributeFilters = matcher;
- }
-
- @Override
- public KeyedMatcherSetI getAttributeFilters()
- {
- return attributeFilters;
- }
}