package com.klq.gui.control;
import com.klq.ast.impl.Type;
import com.klq.ast.impl.expr.AExpression;
import com.klq.ast.impl.stmt.QuestionNode;
import com.klq.controller.Controller;
import javafx.scene.control.TextField;
import javafx.scene.layout.Region;
import java.util.List;
/**
* Created by Timon on 09.03.2015.
*/
public class TextRenderedQuestion extends ARenderedQuestion {
public TextRenderedQuestion(QuestionNode question, List<AExpression> dependencies, Controller controller) {
super(question, dependencies, controller);
}
@Override
protected Region createQuestionControl() {
TextField inputField = new TextField();
inputField.setPrefWidth(250);
inputField.textProperty().addListener((observable, oldValue, newValue) -> {
if (isValidInput(newValue)){
inputField.setStyle("-fx-border-color: cornflowerblue");
questionAnswered(newValue);
} else {
inputField.setStyle("-fx-border-color: red");
}
});
return inputField;
}
@Override
protected boolean isValidInput(String input) {
if (getType() == Type.NUMERAL) {
return input.matches("-?\\d+(\\.\\d+)?") || input.trim().isEmpty();
}
return true;
}
}