JAL-2401 don't apply lower case colour to upper case
[jalview.git] / src / jalview / gui / UserDefinedColours.java
index 10a9687..6e9a121 100755 (executable)
@@ -29,6 +29,7 @@ import jalview.jbgui.GUserDefinedColours;
 import jalview.schemabinding.version2.Colour;
 import jalview.schemabinding.version2.JalviewUserColours;
 import jalview.schemes.ColourSchemeI;
+import jalview.schemes.ColourSchemeLoader;
 import jalview.schemes.ColourSchemes;
 import jalview.schemes.ResidueProperties;
 import jalview.schemes.UserColourScheme;
@@ -71,7 +72,7 @@ public class UserDefinedColours extends GUserDefinedColours implements
 
   private static final String LAST_DIRECTORY = "LAST_DIRECTORY";
 
-  private static final int MY_FRAME_HEIGHT = 420;
+  private static final int MY_FRAME_HEIGHT = 440;
 
   private static final int MY_FRAME_WIDTH = 810;
 
@@ -124,7 +125,6 @@ public class UserDefinedColours extends GUserDefinedColours implements
       {
         caseSensitive.setSelected(true);
         lcaseColour.setEnabled(true);
-        lcaseColour.setForeground(Color.GRAY);
         resetButtonPanel(true);
       }
       else
@@ -277,15 +277,9 @@ public class UserDefinedColours extends GUserDefinedColours implements
   {
     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)
+    if (lcaseColour.isSelected())
     {
-      button.setForeground(Color.black);
+      selectedButtons.clear();
       for (int i = 0; i < lowerCaseButtons.size(); i++)
       {
         button = lowerCaseButtons.get(i);
@@ -293,6 +287,12 @@ public class UserDefinedColours extends GUserDefinedColours implements
         button.setForeground(ColorUtils.brighterThan(button.getBackground()));
       }
     }
+    for (int i = 0; i < selectedButtons.size(); i++)
+    {
+      button = selectedButtons.get(i);
+      button.setBackground(newColour);
+      button.setForeground(ColorUtils.brighterThan(newColour));
+    }
   }
 
   /**
@@ -627,7 +627,7 @@ public class UserDefinedColours extends GUserDefinedColours implements
     File choice = chooser.getSelectedFile();
     Cache.setProperty(LAST_DIRECTORY, choice.getParent());
 
-    UserColourScheme ucs = ColourSchemes.loadColourScheme(choice
+    UserColourScheme ucs = ColourSchemeLoader.loadColourScheme(choice
             .getAbsolutePath());
     Color[] colors = ucs.getColours();
     schemeName.setText(ucs.getSchemeName());
@@ -636,7 +636,6 @@ public class UserDefinedColours extends GUserDefinedColours implements
     {
       caseSensitive.setSelected(true);
       lcaseColour.setEnabled(true);
-      lcaseColour.setForeground(Color.GRAY);
       resetButtonPanel(true);
       for (int i = 0; i < lowerCaseButtons.size(); i++)
       {
@@ -677,7 +676,7 @@ public class UserDefinedColours extends GUserDefinedColours implements
       {
         colours = colours.substring(0, colours.indexOf("|"));
       }
-      ret = ColourSchemes.loadColourScheme(colours);
+      ret = ColourSchemeLoader.loadColourScheme(colours);
     }
 
     if (ret == null)
@@ -855,29 +854,5 @@ public class UserDefinedColours extends GUserDefinedColours implements
     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)
-  {
-    boolean enable = !selectedButtons.contains(lcaseColour);
-    selectedButtons.clear();
-    if (enable)
-    {
-      selectedButtons.add(lcaseColour);
-      lcaseColour.setForeground(lowerCaseButtons.get(0).getForeground());
-      lcaseColour.setForeground(Color.black);
-    }
-    else
-    {
-      lcaseColour.setBackground(Color.white);
-      lcaseColour.setForeground(Color.gray);
-    }
   }
 }