*/
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
{
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<JalviewUserColours> jbe = um.unmarshal(streamReader,
+ JalviewUserColours.class);
+ JalviewUserColours jucs = jbe.getValue();
/*
* non-case-sensitive colours are for 20 amino acid codes,
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();
}
Color color = new Color(
- Integer.parseInt(jucs.getColour(i).getRGB(), 16));
- if (name.toLowerCase().equals(name))
+ Integer.parseInt(jucs.getColour().get(i).getRGB(), 16));
+ if (name.toLowerCase(Locale.ROOT).equals(name))
{
caseSensitive = true;
lowerCase[index] = color;
}
} 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;