JAL-3148 add all options to colour menu
[jalview.git] / src / jalview / gui / ColourMenuHelper.java
index b2b9574..fd5f080 100644 (file)
@@ -1,3 +1,23 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *  
+ * Jalview is distributed in the hope that it will be useful, but 
+ * WITHOUT ANY WARRANTY; without even the implied warranty 
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ * PURPOSE.  See the GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
 package jalview.gui;
 
 import jalview.bin.Cache;
@@ -52,12 +72,9 @@ public class ColourMenuHelper
    *          a callback to handle menu selection
    * @param coll
    *          the data the menu is being built for
-   * @param simpleOnly
-   *          if true, only simple per-residue colour schemes are included
    */
   public static ButtonGroup addMenuItems(final JMenu colourMenu,
-          final ColourChangeListener client, AnnotatedCollectionI coll,
-          boolean simpleOnly)
+                       final ColourChangeListener client, AnnotatedCollectionI coll)
   {
     /*
      * ButtonGroup groups those items whose 
@@ -65,22 +82,18 @@ public class ColourMenuHelper
      */
     ButtonGroup colours = new ButtonGroup();
 
-    if (!simpleOnly)
-    {
-      JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(
-              MessageManager.getString("label.none"));
-      noColourmenuItem.setName(ResidueColourScheme.NONE);
-      noColourmenuItem.addActionListener(new ActionListener()
-      {
-        @Override
-        public void actionPerformed(ActionEvent e)
-        {
-          client.changeColour_actionPerformed(ResidueColourScheme.NONE);
-        }
-      });
-      colourMenu.add(noColourmenuItem);
-      colours.add(noColourmenuItem);
-    }
+       JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(MessageManager.getString("label.none"));
+       noColourmenuItem.setName(ResidueColourScheme.NONE);
+       noColourmenuItem.addActionListener(new ActionListener() 
+       {
+         @Override
+         public void actionPerformed(ActionEvent e) 
+         {
+           client.changeColour_actionPerformed(ResidueColourScheme.NONE);
+         }
+       });
+       colourMenu.add(noColourmenuItem);
+       colours.add(noColourmenuItem);
 
     /*
      * scan registered colour schemes (built-in or user-defined)
@@ -90,19 +103,16 @@ public class ColourMenuHelper
             .getColourSchemes();
     for (ColourSchemeI scheme : colourSchemes)
     {
-      if (simpleOnly && !scheme.isSimple())
-      {
-        continue;
-      }
-
       /*
        * button text is i18n'd but the name is the canonical name of
        * the colour scheme (inspected in setColourSelected())
        */
       final String name = scheme.getSchemeName();
-      String label = MessageManager.getStringOrReturn("label.colourScheme_"
-              + name.toLowerCase().replace(" ", "_"), name);
-      final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(label);
+      String label = MessageManager.getStringOrReturn(
+              "label.colourScheme_" + name.toLowerCase().replace(" ", "_"),
+              name);
+      final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
+              label);
       radioItem.setName(name);
       radioItem.setEnabled(scheme.isApplicableTo(coll));
       if (scheme instanceof UserColourScheme)
@@ -137,15 +147,16 @@ public class ColourMenuHelper
             ActionListener al = radioItem.getActionListeners()[0];
             radioItem.removeActionListener(al);
             int option = JvOptionPane.showInternalConfirmDialog(
-                    Desktop.desktop, MessageManager
+                    Desktop.desktop,
+                    MessageManager
                             .getString("label.remove_from_default_list"),
                     MessageManager
                             .getString("label.remove_user_defined_colour"),
                     JvOptionPane.YES_NO_OPTION);
             if (option == JvOptionPane.YES_OPTION)
             {
-              ColourSchemes.getInstance().removeColourScheme(
-                      radioItem.getName());
+              ColourSchemes.getInstance()
+                      .removeColourScheme(radioItem.getName());
               colourMenu.remove(radioItem);
               updatePreferences();
             }
@@ -177,13 +188,14 @@ public class ColourMenuHelper
       final String label = MessageManager.getString("action.user_defined");
       JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem(
               label);
-      userDefinedColour.setName(ResidueColourScheme.USER_DEFINED);
+      userDefinedColour.setName(ResidueColourScheme.USER_DEFINED_MENU);
       userDefinedColour.addActionListener(new ActionListener()
       {
         @Override
         public void actionPerformed(ActionEvent e)
         {
-          client.changeColour_actionPerformed(ResidueColourScheme.USER_DEFINED);
+          client.changeColour_actionPerformed(
+                  ResidueColourScheme.USER_DEFINED_MENU);
         }
       });
       colourMenu.add(userDefinedColour);
@@ -197,16 +209,16 @@ public class ColourMenuHelper
    * Marks as selected the colour menu item matching the given colour scheme, or
    * the first item ('None') if no match is found. If the colour scheme is a
    * user defined scheme, but not in the menu (this arises if a new scheme is
-   * defined and applied but not saved to file), then menu option
-   * "User Defined.." is selected.
+   * defined and applied but not saved to file), then menu option "User
+   * Defined.." is selected.
    * 
    * @param colourMenu
    * @param cs
    */
   public static void setColourSelected(JMenu colourMenu, ColourSchemeI cs)
   {
-    String colourName = cs == null ? ResidueColourScheme.NONE : cs
-            .getSchemeName();
+    String colourName = cs == null ? ResidueColourScheme.NONE
+            : cs.getSchemeName();
 
     JRadioButtonMenuItem none = null;
     JRadioButtonMenuItem userDefined = null;
@@ -230,7 +242,7 @@ public class ColourMenuHelper
         {
           none = radioButton;
         }
-        if (ResidueColourScheme.USER_DEFINED.equals(buttonName))
+        if (ResidueColourScheme.USER_DEFINED_MENU.equals(buttonName))
         {
           userDefined = radioButton;
         }