X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=a8afd43ba49fd21069d9347c66a951a7f3d34519;hb=7f7fc2e5533f7b00c86465f964e37c55bcf12fd7;hp=ede020c6101fd71d3c79968e9024763c3adb4123;hpb=dcba450558710d0fb2466616d1d05d02d6a346f7;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index ede020c..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; i