- /*
- * variable colour options include colour by label, by score,
- * by selected attribute text, or attribute value
- */
- final JCheckBoxMenuItem variableColourCB = new JCheckBoxMenuItem(
- MessageManager.getString("label.variable_colour"));
- variableColourCB.setSelected(!featureColour.isSimpleColour());
- men.add(variableColourCB);
-
- /*
- * checkbox action listener doubles up as listener to OK
- * from the variable colour / filters dialog
- */
- variableColourCB.addActionListener(new ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- if (e.getSource() == variableColourCB)
- {
- if (featureColour.isSimpleColour())
- {
- /*
- * toggle simple colour to variable colour - show dialog
- */
- FeatureTypeSettings fc = new FeatureTypeSettings(me.fr, type);
- fc.addActionListener(this);
- }
- else
- {
- /*
- * toggle variable to simple colour - show colour chooser
- */
- String title = MessageManager.getString("label.select_colour");
- ColourChooserListener listener = new ColourChooserListener()
- {
- @Override
- public void colourSelected(Color c)
- {
- table.setValueAt(new FeatureColour(c), rowSelected,
- COLOUR_COLUMN);
- table.validate();
- me.updateFeatureRenderer(
- ((FeatureTableModel) table.getModel()).getData(),
- false);
- }
- };
- JalviewColourChooser.showColourChooser(me, title, featureColour.getMaxColour(), listener);
- }
- }
- else {
- if (e.getSource() instanceof FeatureTypeSettings)
- {
- /*
- * update after OK in feature colour dialog; the updated
- * colour will have already been set in the FeatureRenderer
- */
- FeatureColourI fci = fr.getFeatureColours().get(type);
- table.setValueAt(fci, rowSelected, COLOUR_COLUMN);
- table.validate();
- }
- }
- }
-
- });
-