X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=556ae41e13ed043f96f34bd7f1f80608764357f5;hb=be545261cf6e7225da6f3ac1306b1b2609fd0e70;hp=c61db4b42f083bc6e53195f23d83b91f89840f26;hpb=7f7023facc92f28f77bc7b5b2bbd1d04c27ade28;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index c61db4b..556ae41 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. @@ -68,7 +69,7 @@ public class UserDefinedColours extends GUserDefinedColours if (System.getProperty("os.name").startsWith("Mac")) { - frame.setSize(450, 560); + frame.setSize(760, 370); } if (sg != null) @@ -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! * @@ -139,8 +174,12 @@ public class UserDefinedColours extends GUserDefinedColours if(e.isShiftDown()) { - JButton start = (JButton)selectedButtons.elementAt(selectedButtons.size()-1); - JButton end = (JButton) e.getSource(); + JButton start, end = (JButton) e.getSource(); + if(selectedButtons.size()>0) + start = (JButton)selectedButtons.elementAt(selectedButtons.size()-1); + else + start = (JButton) e.getSource(); + int startIndex=0, endIndex=0; for(int b=0; b-1) colours = colours.substring(0, colours.indexOf("|")); - return loadColours(colours); + ret = loadColours(colours); } - else + + if(ret == null) { Color[] newColours = new Color[24]; for (int i = 0; i < 24; i++) { newColours[i] = Color.white; } - return new UserColourScheme(newColours); + ret = new UserColourScheme(newColours); } + + return ret; } /** @@ -362,7 +413,7 @@ public class UserDefinedColours extends GUserDefinedColours * * @return DOCUMENT ME! */ - public static UserColourScheme loadColours(String file) + static UserColourScheme loadColours(String file) { UserColourScheme ucs = null; Color[] newColours = null; @@ -440,7 +491,7 @@ public class UserDefinedColours extends GUserDefinedColours String defaultColours = jalview.bin.Cache.getDefault("USER_DEFINED_COLOURS", choice); if(defaultColours.indexOf(choice)==-1) { - if(defaultColours.length()<1) + if(defaultColours.length()>0) defaultColours = defaultColours.concat("|"); defaultColours = defaultColours.concat(choice); } @@ -485,16 +536,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 { @@ -517,9 +575,10 @@ public class UserDefinedColours extends GUserDefinedColours { userColourSchemes = new Hashtable(); - if(files==null) + if(files==null || files.length()==0) return; + // In case colours can't be loaded, we'll remove them // from the default list here. StringBuffer coloursFound = new StringBuffer(); @@ -545,7 +604,50 @@ public class UserDefinedColours extends GUserDefinedColours } if (!files.equals(coloursFound.toString())) { - jalview.bin.Cache.setProperty("USER_DEFINED_COLOURS", coloursFound.toString()); + if (coloursFound.toString().length() > 1) + jalview.bin.Cache.setProperty("USER_DEFINED_COLOURS", + coloursFound.toString()); + else + jalview.bin.Cache.applicationProperties.remove("USER_DEFINED_COLOURS"); + } + } + + public static void removeColourFromDefaults(String target) + { + // The only way to find colours by name is to load them in + // In case colours can't be loaded, we'll remove them + // from the default list here. + + userColourSchemes = new Hashtable(); + + StringBuffer coloursFound = new StringBuffer(); + StringTokenizer st = new StringTokenizer( + jalview.bin.Cache.getProperty("USER_DEFINED_COLOURS"), "|"); + + while (st.hasMoreElements()) + { + String file = st.nextToken(); + try + { + UserColourScheme ucs = loadColours(file); + if (ucs != null && !ucs.getName().equals(target)) + { + if (coloursFound.length() > 0) + coloursFound.append("|"); + coloursFound.append(file); + userColourSchemes.put(ucs.getName(), ucs); + } + } + catch (Exception ex) + { + System.out.println("Error loading User ColourFile\n" + ex); + } } + + if (coloursFound.toString().length() > 1) + jalview.bin.Cache.setProperty("USER_DEFINED_COLOURS", coloursFound.toString()); + else + jalview.bin.Cache.applicationProperties.remove("USER_DEFINED_COLOURS"); + } }