X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=ede020c6101fd71d3c79968e9024763c3adb4123;hb=e02486484d33e20dedb020a34f31f6024d5720a2;hp=ec4ad5526196ea40068f3f33e2ae59039709102b;hpb=5ad6d650b6726eb880d8342d19711e626f6ae2f0;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index ec4ad55..ede020c 100755 --- a/src/jalview/gui/UserDefinedColours.java +++ b/src/jalview/gui/UserDefinedColours.java @@ -52,6 +52,7 @@ public class UserDefinedColours extends GUserDefinedColours Vector selectedButtons; ColourSchemeI oldColourScheme; JInternalFrame frame; + MCview.PDBCanvas pdbcanvas; /** * Creates a new UserDefinedColours object. @@ -106,6 +107,40 @@ public class UserDefinedColours extends GUserDefinedColours makeButton("Gap", "-"); } + public UserDefinedColours(MCview.PDBCanvas pdb, ColourSchemeI oldcs) + { + super(); + frame = new JInternalFrame(); + frame.setContentPane(this); + Desktop.addInternalFrame(frame, "User Defined Colours", 720, 370, true); + pdbcanvas = pdb; + + if (System.getProperty("os.name").startsWith("Mac")) + { + frame.setSize(760, 370); + } + + colorChooser.getSelectionModel().addChangeListener(this); + + oldColourScheme = oldcs; + + if (oldColourScheme instanceof UserColourScheme) + { + schemeName.setText( ( (UserColourScheme) oldColourScheme).getName()); + } + for (int i = 0; i < 20; i++) + { + makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) + + "", ResidueProperties.aa[i]); + } + + makeButton("B", "B"); + makeButton("Z", "Z"); + makeButton("X", "X"); + makeButton("Gap", "-"); + } + + /** * DOCUMENT ME! * @@ -140,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(); @@ -269,10 +304,15 @@ public class UserDefinedColours extends GUserDefinedColours seqGroup.cs = ucs; ap.repaint(); } - else + else if(ap!=null) { ap.alignFrame.changeColour(ucs); } + else if(pdbcanvas!=null) + { + pdbcanvas.pdb.setColours(ucs); + pdbcanvas.updateSeqColours(); + } } UserColourScheme getSchemeFromGUI() @@ -286,7 +326,9 @@ public class UserDefinedColours extends GUserDefinedColours } UserColourScheme ucs = new UserColourScheme(newColours); - ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus()); + if(ap!=null) + ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus()); + return ucs; } @@ -381,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(); + + 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()]; + newColours = new Color[jucs.getColourCount()]; for (int i = 0; i < 24; i++) { @@ -400,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; } @@ -494,16 +565,23 @@ public class UserDefinedColours extends GUserDefinedColours */ protected void cancelButton_actionPerformed(ActionEvent e) { + if (ap != null) + { if (seqGroup != null) { - seqGroup.cs = oldColourScheme; + seqGroup.cs = oldColourScheme; } - else + else if (ap != null) { - ap.av.setGlobalColourScheme(oldColourScheme); + ap.av.setGlobalColourScheme(oldColourScheme); } - ap.repaint(); + } + + if(pdbcanvas!=null) + { + pdbcanvas.pdb.setColours(oldColourScheme); + } try {