From ba3a49f699fecbc90a96355cce5d577a3d7d693b Mon Sep 17 00:00:00 2001 From: jprocter Date: Wed, 9 Jun 2010 14:06:02 +0000 Subject: [PATCH] patch for JAL-545 - make deep copy of feature settings --- src/jalview/gui/FeatureRenderer.java | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 09dccfe..be83909 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -105,13 +105,31 @@ 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; + this.renderOrder = new String[fr.renderOrder.length]; + System.arraycopy(fr.renderOrder, 0, renderOrder, 0, + renderOrder.length); + this.featureGroups = new Hashtable(fr.featureGroups); + 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; + this.featureOrder = new Hashtable(fr.featureOrder); } } -- 1.7.10.2