java-org.hwo/src/org/hwo/bitfields/ui/BoolFieldEditor.java

62 lines
1.1 KiB
Java

package org.hwo.bitfields.ui;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.hwo.bitfields.Field;
public class BoolFieldEditor extends FieldControl {
JCheckBox checkbox;
private Field field;
public BoolFieldEditor(Field field)
{
final Field f = field;
checkbox = new JCheckBox();
checkbox.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
f.getBitField().fireStateChanged();
}
});
setField(field);
}
@Override
JComponent getEditorComponent() {
return checkbox;
}
@Override
void setValue(Integer intValue) {
checkbox.setSelected(field.getValue(intValue) != 0);
//field.getBitField().fireStateChanged();
}
@Override
Integer getValue(Integer srcValue) {
return field.setValue(srcValue,checkbox.isSelected() ? 1 : 0);
}
public Field getField() {
return field;
}
public void setField(Field field) {
this.field = field;
checkbox.setText(field.getLabel());
}
@Override
boolean requestFocusInWindow() {
return checkbox.requestFocusInWindow();
}
}