X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemeLoader.java;h=061ccd46e23a07dd4eab7b689314ecf66c226fd7;hb=9d2408483e451285fd555c3cd6e0273977acbaa7;hp=9f086882d4c27f9e672d02a2212aabdb8acae326;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/schemes/ColourSchemeLoader.java b/src/jalview/schemes/ColourSchemeLoader.java index 9f08688..061ccd4 100644 --- a/src/jalview/schemes/ColourSchemeLoader.java +++ b/src/jalview/schemes/ColourSchemeLoader.java @@ -20,14 +20,19 @@ */ 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 { @@ -51,12 +56,14 @@ 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, @@ -69,9 +76,9 @@ public class ColourSchemeLoader 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(); @@ -86,8 +93,8 @@ public class ColourSchemeLoader } 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; @@ -109,34 +116,9 @@ 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;