package gui.observers;
import gui.render.Evaluator;
import gui.render.State;
import javax.swing.JComponent;
import ast.statement.IfStatement;
import ast.value.Bool;
import ast.value.Value;
public class IfObserver extends WidgetObserver{
private final IfStatement ifStat;
protected JComponent ifPanel;
private final State state;
public IfObserver(IfStatement ifStat, JComponent ifComp, State state) {
super();
this.ifStat = ifStat;
this.ifPanel = ifComp;
this.state = state;
}
@Override
public void evaluate() {
boolean visible = false;
Value val = ifStat.getExpr().accept(new Evaluator(state.getEnvValues()));
if (val.isDefined()){
visible = ((Bool)val).getValue();
}
ifPanel.setVisible(visible);
}
}