header updated
[jalview.git] / src / jalview / gui / UserDefinedColours.java
index 089c8a9..8deec8e 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -175,7 +175,7 @@ public class UserDefinedColours extends GUserDefinedColours
       if(e.isShiftDown())\r
       {\r
         JButton start, end = (JButton) e.getSource();\r
-        if(selectedButtons.size()>1)\r
+        if(selectedButtons.size()>0)\r
           start = (JButton)selectedButtons.elementAt(selectedButtons.size()-1);\r
         else\r
           start = (JButton) e.getSource();\r
@@ -423,10 +423,14 @@ public class UserDefinedColours extends GUserDefinedColours
             InputStreamReader in = new InputStreamReader(new FileInputStream(\r
                         file), "UTF-8");\r
 \r
-            jalview.binding.JalviewUserColours jucs = new jalview.binding.JalviewUserColours();\r
-            jucs = (jalview.binding.JalviewUserColours) jucs.unmarshal(in);\r
+              jalview.schemabinding.version2.JalviewUserColours jucs\r
+                  = new jalview.schemabinding.version2.JalviewUserColours();\r
 \r
-            newColours = new Color[jucs.getColourCount()];\r
+              org.exolab.castor.xml.Unmarshaller unmar\r
+                  = new org.exolab.castor.xml.Unmarshaller(jucs);\r
+              jucs = (jalview.schemabinding.version2.JalviewUserColours) unmar.unmarshal( in );\r
+\r
+              newColours = new Color[jucs.getColourCount()];\r
 \r
             for (int i = 0; i < 24; i++)\r
             {\r
@@ -442,9 +446,34 @@ public class UserDefinedColours extends GUserDefinedColours
         }\r
         catch (Exception ex)\r
         {\r
-            System.out.println("Error loading User ColourFile\n"+ex);\r
-        }\r
+            //Could be Archive Jalview format\r
+            try{\r
+              InputStreamReader in = new InputStreamReader(new FileInputStream(\r
+                  file), "UTF-8");\r
+\r
+              jalview.binding.JalviewUserColours jucs\r
+                  = new jalview.binding.JalviewUserColours();\r
+\r
+              jucs = (jalview.binding.JalviewUserColours) jucs.unmarshal(in);\r
 \r
+              newColours = new Color[jucs.getColourCount()];\r
+\r
+              for (int i = 0; i < 24; i++)\r
+              {\r
+                newColours[i] = new Color(Integer.parseInt(\r
+                    jucs.getColour(i).getRGB(), 16));\r
+              }\r
+              if (newColours != null)\r
+              {\r
+                ucs = new UserColourScheme(newColours);\r
+                ucs.setName(jucs.getSchemeName());\r
+              }\r
+            }catch(Exception ex2)\r
+            { ex2.printStackTrace(); }\r
+\r
+            if(newColours==null)\r
+              System.out.println("Error loading User ColourFile\n"+ex);\r
+        }\r
 \r
        return ucs;\r
     }\r