package org.uva.ql.view.widget;
import javax.swing.JCheckBox;
import org.uva.ql.ast.expression.literal.Identifier;
import org.uva.ql.ast.value.BoolValue;
import org.uva.ql.ast.value.Value;
import org.uva.ql.view.listener.CheckBoxListener;
import org.uva.ql.view.listener.WidgetListener;
public class CheckBox extends Widget {
private JCheckBox checkBox;
private WidgetListener widgetListener;
public CheckBox(WidgetListener listener) {
super();
checkBox = new JCheckBox();
this.widgetListener = listener;
checkBox.setOpaque(false);
}
@Override
public void setIdentifier(Identifier identifier) {
super.setIdentifier(identifier);
CheckBoxListener checkBoxListener = new CheckBoxListener(this.widgetListener, getIdentifier(), this);
checkBox.addItemListener(checkBoxListener);
}
@SuppressWarnings("unchecked")
@Override
public Boolean getValue() {
return checkBox.isSelected();
}
@Override
public JCheckBox getWidget() {
return checkBox;
}
@Override
public void setWidgetValue(Value value) {
if (value.isDefined()) {
BoolValue booleanValue = (BoolValue) value;
if (booleanValue.value()) {
checkBox.setSelected(true);
} else {
checkBox.setSelected(false);
}
} else {
checkBox.setSelected(false);
}
}
}