package gui.observers;
import gui.component.ComputedWidget;
import gui.render.Evaluator;
import gui.render.State;
import ast.statement.ComputedQuestion;
import ast.value.Value;
public class ComputedQuestionObserver extends WidgetObserver{
private ComputedQuestion statement;
private ComputedWidget widget;
private State state;
public ComputedQuestionObserver(ComputedQuestion statement, ComputedWidget widget, State state) {
this.statement = statement;
this.widget = widget;
this.state = state;
}
@Override
public void evaluate() {
Value val = statement.getExpr().accept(new Evaluator(state.getEnvValues()));
state.addValue(statement.getId(), val);
widget.setValue(val);
widget.getComponent().setVisible(true);
}
}