package qlProject.gui.listeners;
import java.util.Map;
import javax.swing.JTextField;
import qlProject.ast.Questionnaire;
import qlProject.ast.statement.IStatementsVisitor;
import qlProject.ast.statement.IfStatement;
import qlProject.ast.statement.assignment.ComputedAssignment;
import qlProject.ast.statement.assignment.DirectAssignment;
import qlProject.gui.InputInterpreter;
import qlProject.gui.gui_building_visitors.QuestionWidget;
import qlProject.gui.listeners.document_listeners.TextFieldToBasicQuestionListener;
import qlProject.gui.listeners.document_listeners.TextFieldToComputedListener;
import qlProject.gui.listeners.document_listeners.TextFieldToConditionalQuestionsListListener;
public class DocumentListenerSelector extends ListenerSelector implements IStatementsVisitor {
public DocumentListenerSelector(InputInterpreter interpreter, Map<String, QuestionWidget> questionWidgetsMap, String observed){
super(interpreter, questionWidgetsMap, observed);
}
@Override
public void visit(Questionnaire q){
q.accept(this);
}
@Override
public void visit(ComputedAssignment a){
((JTextField)observedComponent).getDocument().addDocumentListener(new TextFieldToComputedListener(observed, a, interpreter));
}
@Override
public void visit(IfStatement s){
((JTextField)observedComponent).getDocument().addDocumentListener(new TextFieldToConditionalQuestionsListListener(observed, s, interpreter));
}
@Override
public void visit(DirectAssignment q){
((JTextField)observedComponent).getDocument().addDocumentListener(new TextFieldToBasicQuestionListener(observed, interpreter));
}
}