X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FColourMenuHelper.java;h=8e0765b841e5acea620c03eb2887ad3e0796dc5c;hb=f831ddf7f52d6c4a1918e87d94877b22bd322648;hp=a5f43554ba9ea91476d563b36df5b826678907ba;hpb=94751f42fae76e075240eeac0c708abbc8cf9253;p=jalview.git
diff --git a/src/jalview/gui/ColourMenuHelper.java b/src/jalview/gui/ColourMenuHelper.java
index a5f4355..8e0765b 100644
--- a/src/jalview/gui/ColourMenuHelper.java
+++ b/src/jalview/gui/ColourMenuHelper.java
@@ -27,8 +27,9 @@ public class ColourMenuHelper
/**
* Adds items to the colour menu, as mutually exclusive members of a button
* group. The callback handler is responsible for the action on selecting any
- * of these options. It is returned the name of the selected colour, or "None"
- * or "User Defined".
+ * of these options. The callback method receives the name of the selected
+ * colour, or "None" or "User Defined". This method returns the ButtonGroup to
+ * which items were added.
*
* - None
* - Clustal
@@ -43,28 +44,35 @@ 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 void addMenuItems(final JMenu colourMenu,
- final ColourChangeListener client, AnnotatedCollectionI coll)
+ public static ButtonGroup addMenuItems(final JMenu colourMenu,
+ final ColourChangeListener client, AnnotatedCollectionI coll,
+ boolean simpleOnly)
{
/*
* ButtonGroup groups those items whose
* selection is mutually exclusive
*/
ButtonGroup colours = new ButtonGroup();
- JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(
- MessageManager.getString("label.none"));
- noColourmenuItem.setName(ResidueColourScheme.NONE);
- noColourmenuItem.addActionListener(new ActionListener()
+
+ if (!simpleOnly)
{
- @Override
- public void actionPerformed(ActionEvent e)
+ JRadioButtonMenuItem noColourmenuItem = new JRadioButtonMenuItem(
+ MessageManager.getString("label.none"));
+ noColourmenuItem.setName(ResidueColourScheme.NONE);
+ noColourmenuItem.addActionListener(new ActionListener()
{
- client.changeColour_actionPerformed(ResidueColourScheme.NONE);
- }
- });
- colourMenu.add(noColourmenuItem);
- colours.add(noColourmenuItem);
+ @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
@@ -74,9 +82,14 @@ 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 changeColour_actionPerformed)
+ * the colour scheme (inspected in setColourSelected())
*/
final String name = scheme.getSchemeName();
String label = MessageManager.getStringOrReturn("label.colourScheme_"
@@ -148,18 +161,28 @@ public class ColourMenuHelper
colours.add(radioItem);
}
- final String label = MessageManager.getString("action.user_defined");
- JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem(label);
- userDefinedColour.addActionListener(new ActionListener()
+ /*
+ * only add the option to load/configure a user-defined colour
+ * to the AlignFrame colour menu
+ */
+ if (client instanceof AlignFrame)
{
- @Override
- public void actionPerformed(ActionEvent e)
+ final String label = MessageManager.getString("action.user_defined");
+ JRadioButtonMenuItem userDefinedColour = new JRadioButtonMenuItem(
+ label);
+ userDefinedColour.addActionListener(new ActionListener()
{
- client.changeColour_actionPerformed(ResidueColourScheme.USER_DEFINED);
- }
- });
- colourMenu.add(userDefinedColour);
- colours.add(userDefinedColour);
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ client.changeColour_actionPerformed(ResidueColourScheme.USER_DEFINED);
+ }
+ });
+ colourMenu.add(userDefinedColour);
+ colours.add(userDefinedColour);
+ }
+
+ return colours;
}
/**