package ql.gui.control; import javafx.beans.value.ChangeListener; import javafx.scene.Node; import ql.semantics.values.BoolValue; import ql.semantics.values.UndefValue; import ql.semantics.values.Value; /** * Created by Nik on 10-3-15. */ public class CheckBox extends ControlElement implements BoolControl { private javafx.scene.control.CheckBox checkBox; public CheckBox() { this.checkBox = new javafx.scene.control.CheckBox(); } @Override public Node getControlNode() { return this.checkBox; } @Override public void setDisabled(Boolean disabled) { this.checkBox.setDisable(disabled); } @Override public void setValue(Value value) { value.accept(this); } @Override public Void visit(BoolValue val) { this.setSelected(val.getValue()); return null; } @Override public Void visit(UndefValue val) { this.setSelected(false); return null; } @Override public void addListener(ChangeListener listener) { this.checkBox.selectedProperty().addListener(listener); } private void setSelected(Boolean selected) { this.checkBox.setSelected(selected); } @Override public Value getBoolValue() { return new BoolValue(this.checkBox.isSelected()); } }