package nl.uva.se.ql.gui.widgets.boxes; import nl.uva.se.ql.ast.statement.*; import nl.uva.se.ql.gui.builders.CalculatedQuestionBuilder; import nl.uva.se.ql.gui.builders.QuestionBuilder; import nl.uva.se.ql.gui.mediators.Mediator; import nl.uva.se.ql.gui.widgets.questions.calculated.BaseCalculatedQuestion; import javafx.scene.control.Label; import javafx.scene.layout.VBox; import nl.uva.se.ql.gui.widgets.questions.*; public class QuestionBox extends VBox { private final Question question; private final Mediator mediator; public QuestionBox(Question question, Mediator mediator) { this.question = question; this.mediator = mediator; addQuestion(question); } public QuestionBox(CalculatedQuestion question, Mediator mediator) { this.question = question; this.mediator = mediator; addQuestion(question); } public void addQuestion(Question question) { Label title = new Label(question.getLabel()); this.getChildren().add(title); BaseQuestion baseQuestion = question.getType().accept( new QuestionBuilder(question, mediator)); this.getChildren().add(baseQuestion.getWidget()); } public void addQuestion(CalculatedQuestion question) { BaseCalculatedQuestion baseQuestion = question.getType().accept( new CalculatedQuestionBuilder(question, mediator)); this.getChildren().add(baseQuestion.getWidget()); } public Question getQuestion() { return this.question; } }