JAL-1483 cut and paste from SW score model to allow scores based on sequences to...
[jalview.git] / src / jalview / appletgui / FeatureRenderer.java
index a14c321..e11f1b4 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
- * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
+ * Copyright (C) 2014 The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -14,6 +14,7 @@
  * PURPOSE.  See the GNU General Public License for more details.
  * 
  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
  */
 package jalview.appletgui;
 
@@ -78,31 +79,41 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     }
   }
 
-  public void transferSettings(FeatureRenderer fr)
+  public void transferSettings(jalview.api.FeatureRenderer _fr)
   {
-    renderOrder = fr.renderOrder;
-    featureGroups = fr.featureGroups;
-    featureColours = fr.featureColours;
-    transparency = fr.transparency;
-    if (av != null && fr.av != null && fr.av != av)
+    if (_fr instanceof FeatureRenderer)
     {
-      if (fr.av.featuresDisplayed != null)
+      FeatureRenderer fr = (FeatureRenderer) _fr;
+      renderOrder = fr.renderOrder;
+      featureGroups = fr.featureGroups;
+      featureColours = fr.featureColours;
+      transparency = fr.transparency;
+      if (av != null && fr.av != null && fr.av != av)
       {
-        if (av.featuresDisplayed == null)
-        {
-          av.featuresDisplayed = new Hashtable();
-        }
-        else
+        if (fr.av.featuresDisplayed != null)
         {
-          av.featuresDisplayed.clear();
-        }
-        Enumeration en = fr.av.featuresDisplayed.keys();
-        while (en.hasMoreElements())
-        {
-          av.featuresDisplayed.put(en.nextElement(), Boolean.TRUE);
+          if (av.featuresDisplayed == null)
+          {
+            av.featuresDisplayed = new Hashtable();
+          }
+          else
+          {
+            av.featuresDisplayed.clear();
+          }
+          Enumeration en = fr.av.featuresDisplayed.keys();
+          while (en.hasMoreElements())
+          {
+            av.featuresDisplayed.put(en.nextElement(), Boolean.TRUE);
+          }
         }
       }
     }
+    else
+    {
+      throw new Error(
+              "Implementation error: cannot port feature settings from implementation of type "
+                      + _fr.getClass() + " to " + getClass());
+    }
   }
 
   static String lastFeatureAdded;