package qlProject.gui.input_response_visitors; import java.util.Map; import java.util.Set; import qlProject.ast.type.BooleanType; import qlProject.ast.type.ITypeVisitor; import qlProject.ast.type.IntType; import qlProject.ast.type.StringType; import qlProject.ast.value.Value; import qlProject.gui.InputInterpreter; import qlProject.gui.gui_building_visitors.QuestionWidget; import qlProject.gui.listeners.DocumentListenerSelector; import qlProject.gui.listeners.ItemListenerSelector; import qlProject.gui.listeners.ListenerSelector; import qlProject.util.QuestionDetails; public class WidgetBindingVisitor implements ITypeVisitor { private final Map<String, QuestionWidget> questionWidgetsMap; private final String observedId; private final InputInterpreter interpreter; public WidgetBindingVisitor(Map<String, QuestionDetails> questionsDetails, Map<String, QuestionWidget> questionWidgetsMap, String observedId, Map<String, Value> valuesEnvironment, Map<String,Set<String>> awaitingCalculationIds){ this.questionWidgetsMap = questionWidgetsMap; this.observedId = observedId; interpreter = new InputInterpreter(questionsDetails, questionWidgetsMap, valuesEnvironment, awaitingCalculationIds); } @Override public ListenerSelector visit (StringType t){ return new DocumentListenerSelector(interpreter, questionWidgetsMap, observedId); } @Override public DocumentListenerSelector visit (IntType t){ return new DocumentListenerSelector(interpreter, questionWidgetsMap, observedId); } @Override public ItemListenerSelector visit (BooleanType t){ return new ItemListenerSelector(interpreter, questionWidgetsMap, observedId); } }