forked from LupusNobilis/java-org.hwo
62 lines
1.1 KiB
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();
|
|
}
|
|
|
|
}
|