package main.nl.uva.ui.element;
import java.util.List;
import javax.swing.JPanel;
import main.nl.uva.parser.expression.Expression;
import main.nl.uva.parser.statement.Statement;
import main.nl.uva.ui.UI;
import main.nl.uva.validation.type.Bool;
public class IfThenElseUI extends IfThenUI {
private final JPanel _ifThenElsePanel;
private final JPanel _elsePanel;
public IfThenElseUI(final Expression expression, final List<Statement> ifStatements, final List<Statement> elseStatements,
final UI parentUI) {
super(expression, ifStatements, parentUI);
_elsePanel = generateBlockPanel(elseStatements, _parentUI);
_elsePanel.setVisible(!((Bool) expression.getValue()).getValue());
_ifThenElsePanel = generateIfThenElsePanel(_ifPanel, _elsePanel);
}
private JPanel generateIfThenElsePanel(final JPanel ifPanel, final JPanel elsePanel) {
JPanel parent = generateYAxisPanel();
parent.add(ifPanel);
parent.add(elsePanel);
return parent;
}
@Override
public JPanel getPanel() {
return _ifThenElsePanel;
}
@Override
public void onChange() {
boolean ifExpressionValue = ((Bool) _expression.getValue()).getValue();
_ifPanel.setVisible(ifExpressionValue);
_elsePanel.setVisible(!ifExpressionValue);
}
}