package gui.observers;
import java.util.ArrayList;
import javax.swing.JCheckBox;
import ast.form.Form;
import ast.form.IfElse;
import ast.form.Ifstate;
import ast.form.Statement;
import expr.Ident;
import expr.relational.Eq;
import gui.component.Control;
import gui.render.Renderer;
import gui.render.State;
public class QuestionObserver extends ControlObserver {
private final Ident question;
protected Control questionPanel;
private final State state;
private final Form form;
public QuestionObserver(Ident question, Control questionComp, State state, Form form) {
super();
this.question = question;
this.questionPanel = questionComp;
this.state = state;
this.form=form;
}
@Override
public void evaluate() {
Renderer r=new Renderer(state, form);
JCheckBox checkbox= (JCheckBox) questionPanel.getComponent();
//state.getEnvValues().getk
if((checkbox.isSelected())==true)
{
ArrayList<Statement> formStatement= form.getStatements().getList();
for(int i=0;i<formStatement.size();i++)
{
if(formStatement.get(i).getClass()==IfElse.class)
{
IfElse IfElseNode=(IfElse) formStatement.get(i);
Eq EqExpression =(Eq) IfElseNode.getExpr();
Ident LHS=((Ident)EqExpression.getLhs());
if(checkbox.getName().equals(LHS.id))
{
ArrayList<Statement> ifStatement=IfElseNode.getStatement1().getList();
for(int j=0;j<ifStatement.size();j++)
{
Ifstate IfPart=(Ifstate) ifStatement.get(j);
r.visit(IfPart);
}
}
}
}
}
//System.out.println(form);
}
}