X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureRenderer.java;h=b643efbfeab1aa14cfa8321694f0c588ece4678f;hb=32c4c7d4e5db964461c541ee2252510aa3e9e563;hp=0d701acb8ba9ed1d7faf7e54c5ce1641886e1dfd;hpb=b8d255b778892a1581c9209073649fbce6d09c5c;p=jalview.git diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 0d701ac..b643efb 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -72,7 +72,44 @@ public class FeatureRenderer this.av = ap.av; } - + public class FeatureRendererSettings implements Cloneable { + String[] renderOrder; + Hashtable featureGroups; + Hashtable featureColours; + float transparency; + Hashtable featureOrder; + public FeatureRendererSettings(String[] renderOrder, + Hashtable featureGroups, Hashtable featureColours, + float transparency, Hashtable featureOrder) + { + super(); + this.renderOrder = renderOrder; + this.featureGroups = featureGroups; + this.featureColours = featureColours; + this.transparency = transparency; + this.featureOrder = featureOrder; + } + public FeatureRendererSettings(FeatureRenderer fr) + { + this.renderOrder = fr.renderOrder; + this.featureGroups = fr.featureGroups; + this.featureColours = fr.featureColours; + this.transparency = fr.transparency; + this.featureOrder = fr.featureOrder; + } + } + public FeatureRendererSettings getSettings() + { + return new FeatureRendererSettings(this); + } + public void transferSettings(FeatureRendererSettings fr) + { + this.renderOrder = fr.renderOrder; + this.featureGroups = fr.featureGroups; + this.featureColours = fr.featureColours; + this.transparency = fr.transparency; + this.featureOrder = fr.featureOrder; + } public void transferSettings(FeatureRenderer fr) { this.renderOrder = fr.renderOrder; @@ -397,13 +434,16 @@ public class FeatureRenderer * them. Then fires a PropertyChangeEvent on the changeSupport object. * */ - synchronized void findAllFeatures() + void findAllFeatures() { - findAllFeatures(true); // add all new features as visible - if (!firing) { - firing=true; - changeSupport.firePropertyChange("changeSupport",null,null); - firing=false; + synchronized (firing) + { + if (firing.equals(Boolean.FALSE)) { + firing=Boolean.TRUE; + findAllFeatures(true); // add all new features as visible + changeSupport.firePropertyChange("changeSupport",null,null); + firing=Boolean.FALSE; + } } } /** @@ -494,7 +534,7 @@ public class FeatureRenderer updateRenderOrder(allfeatures); findingFeatures = false; } - protected boolean firing=false; + protected Boolean firing=Boolean.FALSE; /** * replaces the current renderOrder with the unordered features in allfeatures. * The ordering of any types in both renderOrder and allfeatures is preserved,