package nl.uva.se.ql.gui.widgets.questions; import javafx.scene.Node; import javafx.scene.control.CheckBox; import nl.uva.se.ql.ast.statement.Question; import nl.uva.se.ql.evaluation.value.BooleanValue; import nl.uva.se.ql.gui.listeners.Listener; import nl.uva.se.ql.gui.mediators.Mediator; import nl.uva.se.ql.gui.validators.BooleanValidator; public class BooleanQuestion extends BaseQuestion<Boolean> { private CheckBox checkBox = new CheckBox(); public BooleanQuestion(Question question, Mediator mediator) { super(question, mediator); Listener<Boolean> listener = new Listener<Boolean>(getMediator()); checkBox.selectedProperty().addListener( listener.addListener(this, getValidator())); } @Override public BooleanValidator initValidator() { return new BooleanValidator(); } @Override public Boolean undoChange(Boolean newValue, Boolean oldValue) { return newValue; } @Override public BooleanValue getValue() { return new BooleanValue(checkBox.selectedProperty().getValue()); } @Override public Node getWidget() { return this.checkBox; } }