package org.freeplane.core.resources.components; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JLabel; import javax.swing.JRadioButton; import org.freeplane.features.mode.Controller; import com.jgoodies.forms.builder.DefaultFormBuilder; public class RadioButtonProperty extends PropertyBean implements IPropertyControl{ JRadioButton mRadioButton = new JRadioButton(); JLabel mLabel; public RadioButtonProperty(String name, String enabled) { super(name); mRadioButton.setName(name); mRadioButton.addItemListener(new ItemListener() { public void itemStateChanged(final ItemEvent pE) { firePropertyChangeEvent(); } }); mRadioButton.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Controller.getCurrentController().getOptionPanelController().actionPerformed(arg0); } }); if(enabled == null || !enabled.equalsIgnoreCase("false")){ this.setEnabled(true); } else{ this.setEnabled(false); } } public void layout(DefaultFormBuilder builder) { this.mLabel = layout(builder, mRadioButton); mLabel.setEnabled(this.mRadioButton.isEnabled()); } public void setEnabled(boolean pEnabled) { mRadioButton.setEnabled(pEnabled); if(mLabel != null){ mLabel.setEnabled(pEnabled); } } @Override public String getValue() { return mRadioButton.isSelected() ? Boolean.TRUE.toString() : Boolean.FALSE.toString(); } @Override public void setValue(String value) { final boolean booleanValue = Boolean.parseBoolean(value); setValue(booleanValue); } public void setValue(final boolean booleanValue) { mRadioButton.setSelected(booleanValue); } public boolean getBooleanValue() { return mRadioButton.isSelected(); } @Override protected Component[] getComponents() { return new Component[]{mRadioButton}; } }