saves and loads annotations with seqrefs
[jalview.git] / src / jalview / gui / Jalview2XML.java
index db60b8b..6384125 100755 (executable)
@@ -316,6 +316,12 @@ public class Jalview2XML
 \r
                 Annotation an = new Annotation();\r
                 an.setDescription(aa[i].description);\r
+\r
+                if(aa[i].sequenceRef!=null)\r
+                 {\r
+                   an.setSequenceRef(aa[i].sequenceRef.getName());\r
+                 }\r
+\r
                 if(aa[i].graph>0)\r
                 {\r
                   an.setGraph(true);\r
@@ -506,18 +512,18 @@ public class Jalview2XML
           jalview.schemabinding.version2.FeatureSettings fs\r
               = new jalview.schemabinding.version2.FeatureSettings();\r
 \r
-          Enumeration e = af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().featureColours.keys();\r
-          while (e.hasMoreElements())\r
+          String [] renderOrder =\r
+              af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().renderOrder;\r
+          for(int ro=0; ro<renderOrder.length; ro++)\r
           {\r
-            String type = e.nextElement().toString();\r
             Setting setting = new Setting();\r
-            setting.setType(type);\r
+            setting.setType(renderOrder[ro]);\r
             setting.setColour(\r
-                af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().getColour(type).getRGB()\r
+                af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().getColour(renderOrder[ro]).getRGB()\r
                 );\r
 \r
             setting.setDisplay(\r
-                av.featuresDisplayed.containsKey(type)\r
+                av.featuresDisplayed.containsKey(renderOrder[ro])\r
                 );\r
 \r
             fs.addSetting(setting);\r
@@ -816,6 +822,14 @@ public class Jalview2XML
                             an[i].getDescription(), anot);\r
                 }\r
 \r
+                if(an[i].getSequenceRef()!=null)\r
+                {\r
+                  jaa.createSequenceMapping(\r
+                      al.findName(an[i].getSequenceRef()), 1\r
+                      );\r
+                  al.findName(an[i].getSequenceRef()).addAlignmentAnnotation(jaa);\r
+                }\r
+\r
                 al.addAnnotation(jaa);\r
             }\r
         }\r