package games.strategy.engine.data.properties;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
public class BooleanProperty extends AEditableProperty {
// compatible with 0.9.0.2 saved games
private static final long serialVersionUID = -7265501762343216435L;
private boolean mValue;
public BooleanProperty(final String name, final String description, final boolean defaultValue) {
super(name, description);
mValue = defaultValue;
}
@Override
public Object getValue() {
return mValue ? Boolean.TRUE : Boolean.FALSE;
}
@Override
public void setValue(final Object value) throws IllegalArgumentException {
mValue = (Boolean) value;
}
public void setValue(final boolean value) {
mValue = value;
}
/**
* @return component used to edit this property.
*/
@Override
public JComponent getEditorComponent() {
final JCheckBox box = new JCheckBox("");
box.setSelected(mValue);
box.addActionListener(e -> mValue = box.isSelected());
return box;
}
@Override
public boolean validate(final Object value) {
return value instanceof Boolean;
}
}