import jalview.datamodel.AlignmentI;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.datamodel.features.FeatureMatcherSetI;
import jalview.datamodel.features.SequenceFeatures;
import jalview.renderer.seqfeatures.FeatureRenderer;
import jalview.schemes.FeatureColour;
import jalview.util.ColorUtils;
-import jalview.util.matcher.KeyedMatcherSetI;
import java.awt.Color;
import java.beans.PropertyChangeListener;
public final FeatureColourI featureColour;
- public final KeyedMatcherSetI filter;
+ public final FeatureMatcherSetI filter;
public final Boolean show;
public FeatureSettingsBean(String type, FeatureColourI colour,
- KeyedMatcherSetI theFilter, Boolean isShown)
+ FeatureMatcherSetI theFilter, Boolean isShown)
{
featureType = type;
featureColour = colour;
/*
* filters for each feature type
*/
- protected Map<String, KeyedMatcherSetI> featureFilters = new HashMap<>();
+ protected Map<String, FeatureMatcherSetI> featureFilters = new HashMap<>();
protected String[] renderOrder;
}
@Override
- public Map<String, KeyedMatcherSetI> getFeatureFilters()
+ public Map<String, FeatureMatcherSetI> getFeatureFilters()
{
- return new HashMap<>(featureFilters);
+ return featureFilters;
}
@Override
- public void setFeatureFilters(Map<String, KeyedMatcherSetI> filters)
+ public void setFeatureFilters(Map<String, FeatureMatcherSetI> filters)
{
featureFilters = filters;
}
@Override
- public KeyedMatcherSetI getFeatureFilter(String featureType)
+ public FeatureMatcherSetI getFeatureFilter(String featureType)
{
return featureFilters.get(featureType);
}
@Override
- public void setFeatureFilter(String featureType, KeyedMatcherSetI filter)
+ public void setFeatureFilter(String featureType, FeatureMatcherSetI filter)
{
if (filter == null || filter.isEmpty())
{
*/
protected boolean featureMatchesFilters(SequenceFeature sf)
{
- KeyedMatcherSetI filter = featureFilters.get(sf.getType());
- // TODO temporary fudge for Score and Label
- return filter == null ? true
- : filter.matches(
- key -> "Label".equals(key[0]) ? sf.getDescription()
- : ("Score".equals(key[0])
- ? String.valueOf(sf.getScore())
- : sf.getValueAsString(key)));
+ FeatureMatcherSetI filter = featureFilters.get(sf.getType());
+ return filter == null ? true : filter.matches(sf);
}
}