package org.uva.sea.ql.gui.widget;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import org.uva.sea.ql.ast.Identifier;
import org.uva.sea.ql.evaluate.BooleanValue;
import org.uva.sea.ql.evaluate.Value;
import org.uva.sea.ql.gui.questionaire.State;
public class BooleanWidget extends Widget{
private final JCheckBox checkbox;
public BooleanWidget(Identifier identifier, State state) {
super(identifier, state);
checkbox = new JCheckBox();
checkbox.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
stateChanged(e);
}
});
setValue(new BooleanValue(false));
}
@Override
public JComponent UIElement() {
return checkbox;
}
@Override
public void setEnabled(boolean isEnabled) {
checkbox.setEnabled(isEnabled);
}
public void setValue(Value value) {
checkbox.setSelected(((BooleanValue)value).getValue());
setChanged();
getState().addIdentifier(getIdentifier(), value);
getState().notify(getIdentifier());
}
public void stateChanged(ItemEvent e) {
setValue( new BooleanValue(checkbox.isSelected()) );
}
}