GraphHeight might be zero
[jalview.git] / src / jalview / gui / Jalview2XML.java
index 8cf676d..be03a9c 100755 (executable)
@@ -719,9 +719,21 @@ public class Jalview2XML
             for (int i = 0; i < colours.length; i++)
             {
                 jalview.schemabinding.version2.Colour col = new jalview.schemabinding.version2.Colour();
+                col.setName(ResidueProperties.aa[i]);
                 col.setRGB(jalview.util.Format.getHexString(colours[i]));
                 jbucs.addColour(col);
             }
+            if(ucs.getLowerCaseColours()!=null)
+            {
+              colours = ucs.getLowerCaseColours();
+              for (int i = 0; i < colours.length; i++)
+             {
+                 jalview.schemabinding.version2.Colour col = new jalview.schemabinding.version2.Colour();
+                 col.setName(ResidueProperties.aa[i].toLowerCase());
+                 col.setRGB(jalview.util.Format.getHexString(colours[i]));
+                 jbucs.addColour(col);
+             }
+            }
 
             id = "ucs" + userColours.indexOf(ucs);
             uc.setId(id);
@@ -748,16 +760,29 @@ public class Jalview2XML
             }
         }
 
-        int csize = colours.getUserColourScheme().getColourCount();
-        java.awt.Color[] newColours = new java.awt.Color[csize];
+        java.awt.Color[] newColours = new java.awt.Color[24];
 
-        for (int i = 0; i < csize; i++)
+        for (int i = 0; i < 24; i++)
         {
             newColours[i] = new java.awt.Color(Integer.parseInt(
                         colours.getUserColourScheme().getColour(i).getRGB(), 16));
         }
 
-        return new jalview.schemes.UserColourScheme(newColours);
+        jalview.schemes.UserColourScheme ucs =
+            new jalview.schemes.UserColourScheme(newColours);
+
+        if (colours.getUserColourScheme().getColourCount() > 24)
+        {
+          newColours = new java.awt.Color[23];
+          for (int i = 0; i < 23; i++)
+          {
+            newColours[i] = new java.awt.Color(Integer.parseInt(
+                colours.getUserColourScheme().getColour(i+24).getRGB(), 16));
+          }
+          ucs.setLowerCaseColours(newColours);
+        }
+
+        return ucs;
     }
 
     /**
@@ -1089,7 +1114,7 @@ public class Jalview2XML
                 if(an[i].getSequenceRef()!=null)
                 {
                   jaa.createSequenceMapping(
-                      al.findName(an[i].getSequenceRef()), 1
+                      al.findName(an[i].getSequenceRef()), 1, true
                       );
                   al.findName(an[i].getSequenceRef()).addAlignmentAnnotation(jaa);
                 }