JAL-1360 workaround for user defined colours display on Java 7
[jalview.git] / src / jalview / jbgui / GUserDefinedColours.java
index f445d36..7a485fd 100755 (executable)
@@ -25,7 +25,9 @@ import jalview.util.MessageManager;
 
 import java.awt.*;
 import java.awt.event.*;
+
 import javax.swing.*;
+import javax.swing.colorchooser.AbstractColorChooserPanel;
 
 /**
  * DOCUMENT ME!
@@ -183,7 +185,11 @@ public class GUserDefinedColours extends JPanel
     label.setFont(new java.awt.Font("Verdana", Font.ITALIC, 10));
     label.setOpaque(false);
     label.setPreferredSize(new Dimension(260, 34));
-    label.setText(MessageManager.formatMessage("label.html_content", new String[]{MessageManager.getString("label.save_colour_scheme_with_unique_name_added_to_colour_menu")}));
+    label.setText(MessageManager.formatMessage(
+            "label.html_content",
+            new String[]
+            { MessageManager
+                    .getString("label.save_colour_scheme_with_unique_name_added_to_colour_menu") }));
     caseSensitive.setText(MessageManager.getString("label.case_sensitive"));
     caseSensitive.addActionListener(new ActionListener()
     {
@@ -192,7 +198,8 @@ public class GUserDefinedColours extends JPanel
         caseSensitive_actionPerformed(e);
       }
     });
-    lcaseColour.setText(MessageManager.getString("label.lower_case_colour"));
+    lcaseColour
+            .setText(MessageManager.getString("label.lower_case_colour"));
     lcaseColour.addActionListener(new ActionListener()
     {
       public void actionPerformed(ActionEvent e)
@@ -222,6 +229,13 @@ public class GUserDefinedColours extends JPanel
     jPanel4.add(panel1, java.awt.BorderLayout.CENTER);
     this.add(jPanel4, java.awt.BorderLayout.CENTER);
     this.add(colorChooser, java.awt.BorderLayout.EAST);
+    
+    AbstractColorChooserPanel[] choosers = colorChooser.getChooserPanels();
+    // JAL-1360 larger JColorChooser in Java 7 overwrites AA panel; restrict to swatch picker only
+    if (choosers.length > 3) {
+       // Java 7 default has 5 options rather than 3 for choosing colours; keep the first only
+       colorChooser.setChooserPanels(new AbstractColorChooserPanel[]{choosers[0]});
+    }
   }
 
   /**