package net.iplantevin.ql.gui.formcomponents;
import net.iplantevin.ql.ast.expressions.Expression;
import net.iplantevin.ql.evaluation.BoolVal;
import net.iplantevin.ql.gui.main.FormFrame;
/**
* @author Ivan
*/
public class IfElseComponent extends ConditionalComponent {
private final AbstractFormComponent elseBody;
private static BoolVal FALSE = new BoolVal(false);
public IfElseComponent(AbstractFormComponent ifBody,
AbstractFormComponent elseBody,
Expression condition, FormFrame frame) {
super(ifBody, condition, frame);
this.elseBody = elseBody;
initUI();
}
@Override
protected void initUI() {
super.initUI();
add(elseBody);
}
private void setElseBodyActive() {
if (getValue().equals(FALSE)) {
elseBody.setActive(true);
} else {
elseBody.setActive(false);
}
}
@Override
public void initValue() {
super.initValue();
setElseBodyActive();
}
@Override
public void reEvaluate() {
if (!isActive()) {
return;
}
super.reEvaluate();
setElseBodyActive();
}
@Override
public void setActive(boolean active) {
super.setActive(active);
setElseBodyActive();
}
}