X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fgui%2FFeatureRenderer.java;h=021c27e2c91b2fdd65ffc27ad243da8f09c14485;hb=34e81d4c2a02e30ccbea5295e550137b57810f25;hp=4e72719b78d9a732b40b7e8145fb7e4ab629d798;hpb=a7168a947828a74899fff98c5f4f59515f60432a;p=jalview.git diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 4e72719..021c27e 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -165,11 +165,37 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer public void transferSettings(FeatureRenderer fr) { - this.renderOrder = fr.renderOrder; - this.featureGroups = fr.featureGroups; - this.featureColours = fr.featureColours; - this.transparency = fr.transparency; - this.featureOrder = fr.featureOrder; + FeatureRendererSettings frs = new FeatureRendererSettings(fr); + this.renderOrder = frs.renderOrder; + this.featureGroups = frs.featureGroups; + this.featureColours = frs.featureColours; + this.transparency = frs.transparency; + this.featureOrder = frs.featureOrder; + if (av != null && av!=fr.av) + { + // copy over the displayed feature settings + if (fr.av != null) + { + if (fr.av.featuresDisplayed != null) + { + // update display settings + if (av.featuresDisplayed == null) + { + av.featuresDisplayed = new Hashtable(fr.av.featuresDisplayed); + } + else + { + av.featuresDisplayed.clear(); + Enumeration en = fr.av.featuresDisplayed.keys(); + while (en.hasMoreElements()) + { + av.featuresDisplayed.put(en.nextElement(), Boolean.TRUE); + } + + } + } + } + } } BufferedImage offscreenImage; @@ -229,7 +255,8 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer } currentColour = null; - // TODO: non-threadsafe - each rendering thread needs its own instance of the feature renderer - or this should be synchronized. + // TODO: non-threadsafe - each rendering thread needs its own instance of + // the feature renderer - or this should be synchronized. offscreenRender = true; if (offscreenImage != null)