package org.nlamah.QL.View.Controllers;
import org.nlamah.QL.Model.Expression.Abstract.ValueExpression;
import org.nlamah.QL.Model.Form.ComputedQuestion;
import org.nlamah.QL.Model.Form.Abstract.FormQuestion;
import org.nlamah.QL.View.Form.Abstract.QuestionView;
import org.nlamah.QL.View.Widgets.ComputedValueWidgetView;
public class ComputedQuestionViewController extends QuestionViewController
{
public ComputedQuestionViewController(FormRootViewController rootViewController, FormQuestion question)
{
super(rootViewController, question);
}
@Override
public void valueChanged(ValueExpression newValue)
{
rootViewController.modelStateChanged();
}
private void adjustComputedValue()
{
FormQuestion question = (FormQuestion) modelElement;
assert(question instanceof ComputedQuestion);
ValueExpression value = ((ComputedQuestion) question).value();
assert(view instanceof QuestionView);
assert(((QuestionView) view).widgetView() instanceof ComputedValueWidgetView);
ComputedValueWidgetView widgetView = (ComputedValueWidgetView)((QuestionView) view).widgetView();
widgetView.setValue(value);
}
@Override
public int evaluateViewHeight()
{
adjustComputedValue();
return super.evaluateViewHeight();
}
}