package gui.observers; import gui.Evaluation; import gui.render.State; import javax.swing.JComponent; import ast.evaluate.Bool; import ast.evaluate.Value; import ast.form.Ifstate; public class IfObserver extends ControlObserver{ private final Ifstate ifStat; protected JComponent ifPanel; private final State state; public IfObserver(Ifstate ifStat, JComponent ifComp, State state) { super(); this.ifStat = ifStat; this.ifPanel = ifComp; this.state = state; } @Override public void evaluate() { Evaluation eval= new Evaluation(state.getEnvValues()); Value val = ifStat.accept(eval); boolean visible = ((Bool)val).getValue(); ifPanel.setVisible(visible); } }