package org.docear.plugin.core.ui; 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.JRadioButton; import org.freeplane.core.resources.components.PropertyBean; import com.jgoodies.forms.builder.DefaultFormBuilder; public class LinkRadioButtonProperty extends PropertyBean { JRadioButton button = new JRadioButton(); LinkLabel htmlLabel; public LinkRadioButtonProperty(String name, String text) { super(name); htmlLabel = new LinkLabel(text); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { if(!button.isSelected()){ button.setSelected(true); } else{ firePropertyChangeEvent(); } } }); } @Override public void layout(DefaultFormBuilder builder) { builder.append(htmlLabel); builder.append(button); } @Override public void setEnabled(boolean pEnabled) { htmlLabel.setEnabled(pEnabled); button.setEnabled(pEnabled); } @Override public String getValue() { return button.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) { button.setSelected(booleanValue); } public boolean getBooleanValue() { return button.isSelected(); } @Override protected Component[] getComponents() { return new Component[]{button, htmlLabel}; } }