package org.fugazi.qls.gui.widget; import org.fugazi.ql.ast.statement.Question; import org.fugazi.ql.evaluator.expression_value.ExpressionValue; import org.fugazi.ql.gui.widgets.IWidget; import org.fugazi.ql.gui.widgets.WidgetsFactory; import org.fugazi.qls.ast.question.QLSQuestion; import org.fugazi.qls.ast.stylesheet.stylesheet_data.QLSStyleSheetDataStorage; import org.fugazi.qls.ast.widget.AbstractQLSWidget; import java.util.List; public class QLSWidgetsFactory extends WidgetsFactory { private final QLSStyleSheetDataStorage styleSheetDataStorage; public QLSWidgetsFactory(QLSStyleSheetDataStorage _styleSheetDataStorage) { this.styleSheetDataStorage = _styleSheetDataStorage; } @Override public IWidget getWidgetForQuestion(Question _question) { String label = _question.getLabel(); AbstractQLSWidget widget = (AbstractQLSWidget) getQlsWidget(_question.getIdName()); widget.setLabel(label); return widget; } @Override public IWidget getWidgetForQuestion(Question _question, ExpressionValue _value) { String label = _question.getLabel(); AbstractQLSWidget widget = (AbstractQLSWidget) getQlsWidget(_question.getIdName()); widget.setLabel(label); widget.setWidgetValue(_value); widget.setReadOnly(true); return widget; } private IWidget getQlsWidget(String _qlQuestionId) { List<QLSQuestion> qlsQuestions = styleSheetDataStorage.getQuestions(); for (QLSQuestion qlsQuestion : qlsQuestions) { if (qlsQuestion.getIdName().equals(_qlQuestionId)) { return qlsQuestion.getWidget(); } } return null; } }