X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemeLoader.java;h=061ccd46e23a07dd4eab7b689314ecf66c226fd7;hb=a7169b1c72607f3c9357195b4999869650a2a891;hp=8660f3e8d540b93ea79c4ce98ad7bcffc3ea165b;hpb=136c0793b90b72b928c4d77dc109dd5c644e00d3;p=jalview.git
diff --git a/src/jalview/schemes/ColourSchemeLoader.java b/src/jalview/schemes/ColourSchemeLoader.java
index 8660f3e..061ccd4 100644
--- a/src/jalview/schemes/ColourSchemeLoader.java
+++ b/src/jalview/schemes/ColourSchemeLoader.java
@@ -1,13 +1,38 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * 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 .
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
package jalview.schemes;
-import jalview.binding.JalviewUserColours;
+import java.util.Locale;
+
+import jalview.xml.binding.jalview.JalviewUserColours;
import java.awt.Color;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
-import org.exolab.castor.xml.Unmarshaller;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
public class ColourSchemeLoader
{
@@ -30,14 +55,16 @@ public class ColourSchemeLoader
{
InputStreamReader in = new InputStreamReader(
new FileInputStream(file), "UTF-8");
-
- jalview.schemabinding.version2.JalviewUserColours jucs = new jalview.schemabinding.version2.JalviewUserColours();
-
- org.exolab.castor.xml.Unmarshaller unmar = new org.exolab.castor.xml.Unmarshaller(
- jucs);
- jucs = (jalview.schemabinding.version2.JalviewUserColours) unmar
- .unmarshal(in);
-
+
+ JAXBContext jc = JAXBContext
+ .newInstance("jalview.xml.binding.jalview");
+ javax.xml.bind.Unmarshaller um = jc.createUnmarshaller();
+ XMLStreamReader streamReader = XMLInputFactory.newInstance()
+ .createXMLStreamReader(in);
+ JAXBElement jbe = um.unmarshal(streamReader,
+ JalviewUserColours.class);
+ JalviewUserColours jucs = jbe.getValue();
+
/*
* non-case-sensitive colours are for 20 amino acid codes,
* B, Z, X and Gap
@@ -46,12 +73,12 @@ public class ColourSchemeLoader
newColours = new Color[24];
Color[] lowerCase = new Color[23];
boolean caseSensitive = false;
-
+
String name;
int index;
- for (int i = 0; i < jucs.getColourCount(); i++)
+ for (int i = 0; i < jucs.getColour().size(); i++)
{
- name = jucs.getColour(i).getName();
+ name = jucs.getColour().get(i).getName();
if (ResidueProperties.aa3Hash.containsKey(name))
{
index = ResidueProperties.aa3Hash.get(name).intValue();
@@ -64,10 +91,10 @@ public class ColourSchemeLoader
{
continue;
}
-
- Color color = new Color(Integer.parseInt(jucs.getColour(i)
- .getRGB(), 16));
- if (name.toLowerCase().equals(name))
+
+ Color color = new Color(
+ Integer.parseInt(jucs.getColour().get(i).getRGB(), 16));
+ if (name.toLowerCase(Locale.ROOT).equals(name))
{
caseSensitive = true;
lowerCase[index] = color;
@@ -77,7 +104,7 @@ public class ColourSchemeLoader
newColours[index] = color;
}
}
-
+
/*
* instantiate the colour scheme
*/
@@ -89,36 +116,11 @@ public class ColourSchemeLoader
}
} catch (Exception ex)
{
- // Could be old Jalview Archive format
- try
- {
- InputStreamReader in = new InputStreamReader(new FileInputStream(
- file), "UTF-8");
-
- jalview.binding.JalviewUserColours jucs = new jalview.binding.JalviewUserColours();
-
- jucs = JalviewUserColours.unmarshal(in);
-
- newColours = new Color[jucs.getColourCount()];
-
- for (int i = 0; i < 24; i++)
- {
- newColours[i] = new Color(Integer.parseInt(jucs.getColour(i)
- .getRGB(), 16));
- }
- ucs = new UserColourScheme(newColours);
- ucs.setName(jucs.getSchemeName());
- } catch (Exception ex2)
- {
- ex2.printStackTrace();
- }
-
- if (newColours == null)
- {
- System.out.println("Error loading User ColourFile\n" + ex);
- }
+ // used to try to parse a V1 Castor generated colours file
+ System.err.println("Failed to read colour scheme from " + filePath
+ + " : " + ex.toString());
}
-
+
return ucs;
}