package nl.uva.se.ql.gui.builders;
import nl.uva.se.ql.ast.form.Form;
import nl.uva.se.ql.ast.form.FormVisitor;
import nl.uva.se.ql.ast.statement.CalculatedQuestion;
import nl.uva.se.ql.ast.statement.Condition;
import nl.uva.se.ql.ast.statement.Question;
import nl.uva.se.ql.ast.statement.StatementVisitor;
import nl.uva.se.ql.gui.mediators.Mediator;
import nl.uva.se.ql.gui.widgets.panes.QuestionPane;
public class GuiBuilder implements StatementVisitor, FormVisitor {
private QuestionPane questionPane;
private final Mediator mediator;
public GuiBuilder(Mediator mediator) {
this.mediator = mediator;
}
public void visit(Question question) {
questionPane.addQuestion(question);
}
public void visit(CalculatedQuestion calculatedQuestion) {
questionPane.addQuestion(calculatedQuestion);
}
public void visit(Condition condition) {
ConditionBuilder conditionVisitor = new ConditionBuilder(condition, mediator);
questionPane.addConditionBox(conditionVisitor.getConditionBox());
}
public void visit(Form form) {
questionPane = new QuestionPane(form, mediator);
form.visitChildren(this);
}
public QuestionPane getQuestionPane(){
return this.questionPane;
}
}