X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=a8afd43ba49fd21069d9347c66a951a7f3d34519;hb=ce5285b1d45799f2433f94a85449e7d086ffc7e9;hp=089c8a92be90d6992108fcd20396ec30c382c0be;hpb=406f3f0bc69c49fb910a601a2acd20f028eea012;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index 089c8a9..a8afd43 100755 --- a/src/jalview/gui/UserDefinedColours.java +++ b/src/jalview/gui/UserDefinedColours.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -53,6 +53,9 @@ public class UserDefinedColours extends GUserDefinedColours ColourSchemeI oldColourScheme; JInternalFrame frame; MCview.PDBCanvas pdbcanvas; + Vector upperCaseButtons; + Vector lowerCaseButtons; + /** * Creates a new UserDefinedColours object. @@ -63,63 +66,40 @@ public class UserDefinedColours extends GUserDefinedColours public UserDefinedColours(AlignmentPanel ap, SequenceGroup sg) { super(); - frame = new JInternalFrame(); - frame.setContentPane(this); - Desktop.addInternalFrame(frame, "User Defined Colours", 720, 370, true); - - if (System.getProperty("os.name").startsWith("Mac")) - { - frame.setSize(760, 370); - } - if (sg != null) - { - frame.setTitle(frame.getTitle() + " (" + sg.getName() + ")"); - } - - colorChooser.getSelectionModel().addChangeListener(this); + lcaseColour.setEnabled(false); this.ap = ap; seqGroup = sg; if (seqGroup != null) - { oldColourScheme = seqGroup.cs; - } else - { oldColourScheme = ap.av.getGlobalColourScheme(); - } 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]); + schemeName.setText( ( (UserColourScheme) oldColourScheme).getName()); + if(( (UserColourScheme) oldColourScheme).getLowerCaseColours()!=null) + { + caseSensitive.setSelected(true); + lcaseColour.setEnabled(true); + resetButtonPanel(true); + } + else + resetButtonPanel(false); } + else + resetButtonPanel(false); - makeButton("B", "B"); - makeButton("Z", "Z"); - makeButton("X", "X"); - makeButton("Gap", "-"); + showFrame(); } 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; @@ -128,16 +108,98 @@ public class UserDefinedColours extends GUserDefinedColours { 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", "-"); + resetButtonPanel(false); + + showFrame(); + + } + + void showFrame() + { + colorChooser.getSelectionModel().addChangeListener(this); + frame = new JInternalFrame(); + frame.setContentPane(this); + Desktop.addInternalFrame(frame, "User Defined Colours", 720, 370, true); + + if (seqGroup != null) + frame.setTitle(frame.getTitle() + " (" + seqGroup.getName() + ")"); + + if (System.getProperty("os.name").startsWith("Mac")) + { + frame.setSize(760, 370); + } + } + + void resetButtonPanel(boolean caseSensitive) + { + buttonPanel.removeAll(); + + + if(upperCaseButtons==null) + upperCaseButtons = new Vector(); + + JButton button; + String label; + for (int i = 0; i < 20; i++) + { + if(caseSensitive) + label = ResidueProperties.aa[i]; + else + label = ResidueProperties.aa2Triplet.get + (ResidueProperties.aa[i]).toString(); + + button = makeButton(label, + ResidueProperties.aa[i], + upperCaseButtons, i); + + buttonPanel.add(button); + } + + buttonPanel.add(makeButton("B", "B", upperCaseButtons, 20)); + buttonPanel.add(makeButton("Z", "Z", upperCaseButtons, 21)); + buttonPanel.add(makeButton("X", "X", upperCaseButtons, 22)); + buttonPanel.add(makeButton("Gap", "-", upperCaseButtons, 23)); + + if(!caseSensitive) + { + gridLayout.setRows(6); + gridLayout.setColumns(4); + } + else + { + gridLayout.setRows(7); + int cols = 7; + gridLayout.setColumns(cols+1); + + if(lowerCaseButtons==null) + lowerCaseButtons = new Vector(); + + + for (int i = 0; i < 20; i++) + { + int row = i / cols + 1; + int index = (row * cols) + i; + button = makeButton( + ResidueProperties.aa[i].toLowerCase(), + ResidueProperties.aa[i].toLowerCase(), + lowerCaseButtons, + i); + + buttonPanel.add(button, index); + } + } + + + if(caseSensitive) + { + buttonPanel.add(makeButton("b", "b", lowerCaseButtons, 20)); + buttonPanel.add(makeButton("z", "z", lowerCaseButtons, 21)); + buttonPanel.add(makeButton("x", "x", lowerCaseButtons, 22)); + } + + buttonPanel.validate(); + validate(); } @@ -150,13 +212,22 @@ public class UserDefinedColours extends GUserDefinedColours { if (selectedButtons != null) { - JButton button; + JButton button=null; for(int i=0; i1) + if(selectedButtons.size()>0) start = (JButton)selectedButtons.elementAt(selectedButtons.size()-1); else start = (JButton) e.getSource(); @@ -242,33 +313,53 @@ public class UserDefinedColours extends GUserDefinedColours * @param label DOCUMENT ME! * @param aa DOCUMENT ME! */ - void makeButton(String label, String aa) + JButton makeButton(String label, + String aa, + Vector caseSensitiveButtons, + int buttonIndex) { - final JButton button = new JButton(); - Color col = Color.white; + final JButton button; + Color col; - try + if(buttonIndex