update author list in license for (JAL-826)
[jalview.git] / src / jalview / appletgui / FeatureRenderer.java
index d2712b8..244b650 100755 (executable)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
  * 
  * This file is part of Jalview.
  * 
@@ -84,6 +84,23 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     featureGroups = fr.featureGroups;
     featureColours = fr.featureColours;
     transparency = fr.transparency;
+    if (av!=null && fr.av!=null && fr.av!=av)
+    {
+      if (fr.av.featuresDisplayed!=null)
+      {
+        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);
+        }
+      }
+    }
   }
 
   static String lastFeatureAdded;
@@ -661,16 +678,16 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
         else if (sequenceFeatures[sfindex].type.equals("disulfide bond"))
         {
 
-          renderFeature(g, seq, seq
-                  .findIndex(sequenceFeatures[sfindex].begin) - 1, seq
-                  .findIndex(sequenceFeatures[sfindex].begin) - 1,
+          renderFeature(g, seq,
+                  seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
+                  seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
                   getColour(sequenceFeatures[sfindex])
                   // new Color(((Integer) av.featuresDisplayed
                   // .get(sequenceFeatures[sfindex].type)).intValue())
                   , start, end, y1);
-          renderFeature(g, seq, seq
-                  .findIndex(sequenceFeatures[sfindex].end) - 1, seq
-                  .findIndex(sequenceFeatures[sfindex].end) - 1,
+          renderFeature(g, seq,
+                  seq.findIndex(sequenceFeatures[sfindex].end) - 1,
+                  seq.findIndex(sequenceFeatures[sfindex].end) - 1,
                   getColour(sequenceFeatures[sfindex])
                   // new Color(((Integer) av.featuresDisplayed
                   // .get(sequenceFeatures[sfindex].type)).intValue())
@@ -681,9 +698,9 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
         {
           if (showFeature(sequenceFeatures[sfindex]))
           {
-            renderFeature(g, seq, seq
-                    .findIndex(sequenceFeatures[sfindex].begin) - 1, seq
-                    .findIndex(sequenceFeatures[sfindex].end) - 1,
+            renderFeature(g, seq,
+                    seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
+                    seq.findIndex(sequenceFeatures[sfindex].end) - 1,
                     getColour(sequenceFeatures[sfindex]), start, end, y1);
           }
         }
@@ -747,6 +764,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
   }
 
   Hashtable minmax = null;
+
   /**
    * Called when alignment in associated view has new/modified features to
    * discover and display.
@@ -757,6 +775,7 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
     lastSeq = null;
     findAllFeatures();
   }
+
   /**
    * find all features on the alignment
    */
@@ -790,8 +809,8 @@ public class FeatureRenderer implements jalview.api.FeatureRenderer
         {
           if (getColour(features[index].getType()) == null)
           {
-            featureColours.put(features[index].getType(), ucs
-                    .createColourFromName(features[index].getType()));
+            featureColours.put(features[index].getType(),
+                    ucs.createColourFromName(features[index].getType()));
           }
 
           av.featuresDisplayed.put(features[index].getType(), new Integer(