X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=ede020c6101fd71d3c79968e9024763c3adb4123;hb=6fc9aca27f606f6e3a0121597896e1a5dae35c36;hp=089c8a92be90d6992108fcd20396ec30c382c0be;hpb=406f3f0bc69c49fb910a601a2acd20f028eea012;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index 089c8a9..ede020c 100755 --- a/src/jalview/gui/UserDefinedColours.java +++ b/src/jalview/gui/UserDefinedColours.java @@ -175,7 +175,7 @@ public class UserDefinedColours extends GUserDefinedColours if(e.isShiftDown()) { JButton start, end = (JButton) e.getSource(); - if(selectedButtons.size()>1) + if(selectedButtons.size()>0) start = (JButton)selectedButtons.elementAt(selectedButtons.size()-1); else start = (JButton) e.getSource(); @@ -423,10 +423,14 @@ public class UserDefinedColours extends GUserDefinedColours InputStreamReader in = new InputStreamReader(new FileInputStream( file), "UTF-8"); - jalview.binding.JalviewUserColours jucs = new jalview.binding.JalviewUserColours(); - jucs = (jalview.binding.JalviewUserColours) jucs.unmarshal(in); + jalview.schemabinding.version2.JalviewUserColours jucs + = new jalview.schemabinding.version2.JalviewUserColours(); - newColours = new Color[jucs.getColourCount()]; + org.exolab.castor.xml.Unmarshaller unmar + = new org.exolab.castor.xml.Unmarshaller(jucs); + jucs = (jalview.schemabinding.version2.JalviewUserColours) unmar.unmarshal( in ); + + newColours = new Color[jucs.getColourCount()]; for (int i = 0; i < 24; i++) { @@ -442,9 +446,34 @@ public class UserDefinedColours extends GUserDefinedColours } catch (Exception ex) { - System.out.println("Error loading User ColourFile\n"+ex); - } + //Could be Archive Jalview format + try{ + InputStreamReader in = new InputStreamReader(new FileInputStream( + file), "UTF-8"); + + jalview.binding.JalviewUserColours jucs + = new jalview.binding.JalviewUserColours(); + + jucs = (jalview.binding.JalviewUserColours) jucs.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)); + } + if (newColours != null) + { + 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); + } return ucs; }