package org.fugazi.ql.gui.ui_element.ui_questions; import org.fugazi.ql.ast.statement.Question; import org.fugazi.ql.evaluator.expression_value.ExpressionValue; import org.fugazi.ql.gui.mediator.Colleague; import org.fugazi.ql.gui.mediator.IMediator; import org.fugazi.ql.gui.ui_element.UIForm; import org.fugazi.ql.gui.widgets.IWidget; public abstract class UIQuestion extends Colleague { protected IWidget widget; protected final Question question; UIQuestion(IMediator _med, Question _question, IWidget _widget) { super(_med); this.question = _question; this.widget = _widget; } public abstract void setState(ExpressionValue _value); public abstract ExpressionValue getState(); public abstract void resetState(); public void addToForm(UIForm _form) { this.widget.render(_form); } public void removeFromForm(UIForm _form) { this.widget.suppress(_form); this.resetState(); } @Override public String getId() { return question.getIdName(); } public IWidget getWidget() { return this.widget; } }