X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=e1a43d9439284cc73d9b4c5eebdd21c4d6179b47;hb=e6e92a1314a7b7557401b829846ac55dcffbfbe2;hp=7a5c1f1862d246af448c3297b5fc119af9053287;hpb=97f870ff4890ebfadcbb73e6793c83f856948658;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index 7a5c1f1..e1a43d9 100755 --- a/src/jalview/gui/UserDefinedColours.java +++ b/src/jalview/gui/UserDefinedColours.java @@ -256,33 +256,34 @@ public class UserDefinedColours extends GUserDefinedColours implements } /** - * DOCUMENT ME! + * ChangeListener handler for when a colour is picked in the colour chooser. + * The action is to apply the colour to all selected buttons as their + * background colour. Foreground colour (text) is set to a lighter shade in + * order to highlight which buttons are selected. If 'Lower Case Colour' is + * active, then the colour is applied to all lower case buttons (as well as + * the Lower Case Colour button itself). * * @param evt - * DOCUMENT ME! */ @Override public void stateChanged(ChangeEvent evt) { - if (selectedButtons != null) + JButton button = null; + final Color newColour = colorChooser.getColor(); + for (int i = 0; i < selectedButtons.size(); i++) { - JButton button = null; - final Color newColour = colorChooser.getColor(); - for (int i = 0; i < selectedButtons.size(); i++) + button = selectedButtons.get(i); + button.setBackground(newColour); + button.setForeground(ColorUtils.brighterThan(newColour)); + } + if (button == lcaseColour) + { + button.setForeground(Color.black); + for (int i = 0; i < lowerCaseButtons.size(); i++) { - button = selectedButtons.get(i); + button = lowerCaseButtons.get(i); button.setBackground(newColour); - button.setForeground(ColorUtils.brighterThan(newColour)); - } - if (button == lcaseColour) - { - for (int i = 0; i < lowerCaseButtons.size(); i++) - { - button = lowerCaseButtons.get(i); - button.setBackground(newColour); - button.setForeground(ColorUtils.brighterThan(button - .getBackground())); - } + button.setForeground(ColorUtils.brighterThan(button.getBackground())); } } } @@ -307,11 +308,6 @@ public class UserDefinedColours extends GUserDefinedColours implements */ public void colourButtonPressed(MouseEvent e) { - if (selectedButtons == null) - { - selectedButtons = new ArrayList(); - } - JButton pressed = (JButton) e.getSource(); if (e.isShiftDown()) @@ -848,21 +844,32 @@ public class UserDefinedColours extends GUserDefinedColours implements @Override public void caseSensitive_actionPerformed(ActionEvent e) { - resetButtonPanel(caseSensitive.isSelected()); - lcaseColour.setEnabled(caseSensitive.isSelected()); + boolean selected = caseSensitive.isSelected(); + resetButtonPanel(selected); + lcaseColour.setEnabled(selected); + lcaseColour.setForeground(Color.GRAY); } + /** + * Action on clicking 'Lower case colour', which results in changing colour of + * all lower-case buttons when a colour is picked. A second click of the + * button turns off this behaviour. + */ @Override public void lcaseColour_actionPerformed(ActionEvent e) { - if (selectedButtons == null) + boolean enable = !selectedButtons.contains(lcaseColour); + selectedButtons.clear(); + if (enable) { - selectedButtons = new ArrayList(); + selectedButtons.add(lcaseColour); + lcaseColour.setForeground(lowerCaseButtons.get(0).getForeground()); + lcaseColour.setForeground(Color.black); } else { - selectedButtons.clear(); + lcaseColour.setBackground(Color.white); + lcaseColour.setForeground(Color.gray); } - selectedButtons.add(lcaseColour); } }