X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=86c39f9124cba0057f783392dff07a42e54dc4eb;hb=4a621fa37b9addc932b571f96881513a7515066d;hp=ec4ad5526196ea40068f3f33e2ae59039709102b;hpb=5ad6d650b6726eb880d8342d19711e626f6ae2f0;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index ec4ad55..86c39f9 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 @@ -52,6 +52,10 @@ public class UserDefinedColours extends GUserDefinedColours Vector selectedButtons; ColourSchemeI oldColourScheme; JInternalFrame frame; + MCview.PDBCanvas pdbcanvas; + Vector upperCaseButtons; + Vector lowerCaseButtons; + /** * Creates a new UserDefinedColours object. @@ -62,50 +66,150 @@ 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); - } + //AW - LOWER CASE DISABLED IN 2.1.01 bug fix release + casePanel.setVisible(false); - 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()); + schemeName.setText( ( (UserColourScheme) oldColourScheme).getName()); + if(( (UserColourScheme) oldColourScheme).getLowerCaseColours()!=null) + { + caseSensitive.setSelected(true); + lcaseColour.setEnabled(true); + resetButtonPanel(true); + } + else + resetButtonPanel(false); } - for (int i = 0; i < 20; i++) + else + resetButtonPanel(false); + + showFrame(); + } + + public UserDefinedColours(MCview.PDBCanvas pdb, ColourSchemeI oldcs) + { + super(); + pdbcanvas = pdb; + + colorChooser.getSelectionModel().addChangeListener(this); + + oldColourScheme = oldcs; + + if (oldColourScheme instanceof UserColourScheme) { - makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) + - "", ResidueProperties.aa[i]); + schemeName.setText( ( (UserColourScheme) oldColourScheme).getName()); } - 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) + { + //AW - LOWER CASE DISABLED IN 2.1.01 bug fix release + caseSensitive = false; + + 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(); } + /** * DOCUMENT ME! * @@ -115,13 +219,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(); @@ -207,33 +320,55 @@ 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