4 import java.awt.event.ActionListener;
6 import javax.swing.AbstractButton;
7 import javax.swing.ButtonGroup;
8 import javax.swing.JRadioButton;
10 public class JalviewBooleanRadioButtons extends AbstractButton
12 private static final Font LABEL_FONT = JvSwingUtils.getLabelFont();
14 private ButtonGroup buttonGroup = new ButtonGroup();
16 private JRadioButton buttonTrue = new JRadioButton();
18 private JRadioButton buttonFalse = new JRadioButton();
20 public JalviewBooleanRadioButtons(boolean value, String trueLabel,
24 this.setLabels(trueLabel, falseLabel);
27 public JalviewBooleanRadioButtons(boolean value)
33 public JalviewBooleanRadioButtons()
40 buttonTrue.setFont(LABEL_FONT);
41 buttonFalse.setFont(LABEL_FONT);
42 buttonGroup.add(buttonTrue);
43 buttonGroup.add(buttonFalse);
46 public void setLabels(String trueLabel, String falseLabel)
48 buttonTrue.setText(trueLabel);
49 buttonFalse.setText(falseLabel);
53 public void setSelected(boolean b)
55 buttonFalse.setSelected(!b);
56 // this should probably happen automatically, no harm in forcing the issue!
57 // setting them this way round so the last setSelected is on buttonTrue
58 buttonTrue.setSelected(b);
62 public boolean isSelected()
64 // unambiguous selection
65 return buttonTrue.isSelected() && !buttonFalse.isSelected();
69 public void setEnabled(boolean b)
71 buttonTrue.setEnabled(b);
72 buttonFalse.setEnabled(b);
76 public boolean isEnabled()
78 return buttonTrue.isEnabled() && buttonFalse.isEnabled();
81 public JRadioButton getTrueButton()
86 public JRadioButton getFalseButton()
92 public void addActionListener(ActionListener l)
94 buttonTrue.addActionListener(l);
95 buttonFalse.addActionListener(l);
98 public void addTrueActionListener(ActionListener l)
100 buttonTrue.addActionListener(l);
103 public void addFalseActionListener(ActionListener l)
105 buttonFalse.addActionListener(l);