package com.form.language.gui.widget; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JCheckBox; import com.form.language.ast.statement.question.Question; import com.form.language.ast.values.BoolValue; import com.form.language.ast.values.GenericValue; import com.form.language.memory.Context; public class CheckBox extends Widget { private JCheckBox checkbox; public CheckBox(Question question, Context context) { super(question, context); this.checkbox = new JCheckBox(); this.checkbox.setName(question.getId()); CheckBoxListener checkboxListener = new CheckBoxListener(); this.checkbox.addItemListener((ItemListener) checkboxListener); setContextValue(new BoolValue()); } public JCheckBox getCheckBox() { return checkbox; } private class CheckBoxListener implements ItemListener { public void itemStateChanged(ItemEvent e) { setContextValue(new BoolValue(checkbox.isSelected())); checkComputedQuestion(); checkDependencyVisibility(); } } @Override public void displayComputedValue(GenericValue value) { boolean computedValue = ((BoolValue) value).getValue(); this.checkbox.setEnabled(false); this.checkbox.setSelected(computedValue); } }