X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FColourSchemeLoader.java;h=141ef10cd57f3476ed07f2e873140ad802192c51;hb=cd8070808d46db2a7cdf130c84dbc04c59c20188;hp=9f086882d4c27f9e672d02a2212aabdb8acae326;hpb=f6123f656fa387e11f506dedd09672a0d0ff5ac5;p=jalview.git diff --git a/src/jalview/schemes/ColourSchemeLoader.java b/src/jalview/schemes/ColourSchemeLoader.java index 9f08688..141ef10 100644 --- a/src/jalview/schemes/ColourSchemeLoader.java +++ b/src/jalview/schemes/ColourSchemeLoader.java @@ -20,14 +20,17 @@ */ package jalview.schemes; -import jalview.binding.JalviewUserColours; +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 +54,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 +74,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,7 +91,7 @@ public class ColourSchemeLoader } Color color = new Color( - Integer.parseInt(jucs.getColour(i).getRGB(), 16)); + Integer.parseInt(jucs.getColour().get(i).getRGB(), 16)); if (name.toLowerCase().equals(name)) { caseSensitive = true; @@ -109,34 +114,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;