X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2Fseqfeatures%2FFeatureRendererSettings.java;h=f594453a964eb1c320c9681e6f90457516f95c98;hb=6200addf078b7f7ace90597dc056dafc7fc602c1;hp=ed867f33c61fd502878ad2562a928f9c0308b4c3;hpb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;p=jalview.git diff --git a/src/jalview/viewmodel/seqfeatures/FeatureRendererSettings.java b/src/jalview/viewmodel/seqfeatures/FeatureRendererSettings.java index ed867f3..f594453 100644 --- a/src/jalview/viewmodel/seqfeatures/FeatureRendererSettings.java +++ b/src/jalview/viewmodel/seqfeatures/FeatureRendererSettings.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) - * Copyright (C) 2015 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,10 +20,12 @@ */ package jalview.viewmodel.seqfeatures; -import jalview.schemes.GraduatedColor; +import jalview.api.FeatureColourI; +import jalview.datamodel.features.FeatureMatcherSetI; +import jalview.schemes.FeatureColour; import java.util.Arrays; -import java.util.Hashtable; +import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -32,24 +34,38 @@ public class FeatureRendererSettings implements Cloneable { String[] renderOrder; - Map featureGroups; + /* + * map of {groupName, isDisplayed} + */ + Map featureGroups; - Map featureColours; + /* + * map of {featureType, colourScheme} + */ + Map featureColours; + + /* + * map of {featureType, filters} + */ + Map featureFilters; float transparency; - Map featureOrder; + Map featureOrder; public FeatureRendererSettings(String[] renderOrder, - Hashtable featureGroups, Hashtable featureColours, - float transparency, Hashtable featureOrder) + Map featureGroups, + Map featureColours, float transparency, + Map featureOrder) { super(); this.renderOrder = Arrays.copyOf(renderOrder, renderOrder.length); - this.featureGroups = new ConcurrentHashMap(featureGroups); - this.featureColours = new ConcurrentHashMap(featureColours); + this.featureGroups = new ConcurrentHashMap( + featureGroups); + this.featureColours = new ConcurrentHashMap( + featureColours); this.transparency = transparency; - this.featureOrder = new ConcurrentHashMap(featureOrder); + this.featureOrder = new ConcurrentHashMap(featureOrder); } /** @@ -61,9 +77,11 @@ public class FeatureRendererSettings implements Cloneable jalview.viewmodel.seqfeatures.FeatureRendererModel fr) { renderOrder = null; - featureGroups = new ConcurrentHashMap(); - featureColours = new ConcurrentHashMap(); - featureOrder = new ConcurrentHashMap(); + featureGroups = new ConcurrentHashMap(); + featureColours = new ConcurrentHashMap(); + featureFilters = new HashMap<>(); + featureOrder = new ConcurrentHashMap(); + if (fr.renderOrder != null) { this.renderOrder = new String[fr.renderOrder.length]; @@ -72,26 +90,36 @@ public class FeatureRendererSettings implements Cloneable } if (fr.featureGroups != null) { - this.featureGroups = new ConcurrentHashMap(fr.featureGroups); + this.featureGroups = new ConcurrentHashMap( + fr.featureGroups); } if (fr.featureColours != null) { - this.featureColours = new ConcurrentHashMap(fr.featureColours); + this.featureColours = new ConcurrentHashMap( + fr.featureColours); } - Iterator en = fr.featureColours.keySet().iterator(); + Iterator en = fr.featureColours.keySet().iterator(); while (en.hasNext()) { - Object next = en.next(); - Object val = featureColours.get(next); - if (val instanceof GraduatedColor) + String next = en.next(); + FeatureColourI val = featureColours.get(next); + // if (val instanceof GraduatedColor) + if (val.isGraduatedColour() || val.isColourByLabel()) // why this test? { - featureColours.put(next, new GraduatedColor((GraduatedColor) val)); + featureColours.put(next, new FeatureColour((FeatureColour) val)); } } + + if (fr.featureFilters != null) + { + this.featureFilters.putAll(fr.featureFilters); + } + this.transparency = fr.transparency; if (fr.featureOrder != null) { - this.featureOrder = new ConcurrentHashMap(fr.featureOrder); + this.featureOrder = new ConcurrentHashMap( + fr.featureOrder); } } }