package nl.uva.se.ql.gui.widgets.questions;
import javafx.scene.Node;
import javafx.scene.control.TextField;
import nl.uva.se.ql.ast.statement.Question;
import nl.uva.se.ql.evaluation.value.StringValue;
import nl.uva.se.ql.gui.listeners.Listener;
import nl.uva.se.ql.gui.mediators.Mediator;
import nl.uva.se.ql.gui.validators.TextValidator;
public class TextQuestion extends BaseQuestion<String> {
private TextField textField = new TextField();
public TextQuestion(Question question, Mediator mediator) {
super(question, mediator);
Listener<String> listener = new Listener<String>(getMediator());
textField.textProperty().addListener(
listener.addListener(this, getValidator()));
}
@Override
public String undoChange(String newValue, String oldValue) {
textField.setText(oldValue);
return textField.getText();
}
@Override
public TextValidator initValidator() {
return new TextValidator();
}
@Override
public StringValue getValue() {
return new StringValue(textField.getText());
}
@Override
public Node getWidget() {
return this.textField;
}
}