X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFeatureRenderer.java;h=e4c6c5c473298006b3a2e09b3674348e040e38e6;hb=c68ebaddf1925d9458aab5f2fea6e6f3240b3b99;hp=09dccfec441f4478df02a8c32f56a41a4265d4c9;hpb=d423f22792e47dbc800ae220a58677f988971d06;p=jalview.git diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 09dccfe..e4c6c5c 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -105,13 +105,47 @@ public class FeatureRenderer this.featureOrder = featureOrder; } + /** + * create an independent instance of the feature renderer settings + * + * @param fr + */ public FeatureRendererSettings(FeatureRenderer fr) { - this.renderOrder = fr.renderOrder; - this.featureGroups = fr.featureGroups; - this.featureColours = fr.featureColours; + renderOrder = null; + featureGroups = new Hashtable(); + featureColours = new Hashtable(); + featureOrder = new Hashtable(); + if (fr.renderOrder != null) + { + this.renderOrder = new String[fr.renderOrder.length]; + System.arraycopy(fr.renderOrder, 0, renderOrder, 0, + renderOrder.length); + } + if (fr.featureGroups != null) + { + this.featureGroups = new Hashtable(fr.featureGroups); + } + if (fr.featureColours != null) + { + this.featureColours = new Hashtable(fr.featureColours); + } + Enumeration en = fr.featureColours.keys(); + while (en.hasMoreElements()) + { + Object next = en.nextElement(); + Object val = featureColours.get(next); + if (val instanceof GraduatedColor) + { + featureColours + .put(next, new GraduatedColor((GraduatedColor) val)); + } + } this.transparency = fr.transparency; - this.featureOrder = fr.featureOrder; + if (fr.featureOrder != null) + { + this.featureOrder = new Hashtable(fr.featureOrder); + } } } @@ -1329,7 +1363,7 @@ public class FeatureRenderer { String type = data[i][0].toString(); setColour(type, data[i][1]); // todo : typesafety - feature color - // interface object + // interface object if (((Boolean) data[i][2]).booleanValue()) { av.featuresDisplayed.put(type, new Integer(getColour(type)