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.expression.ExpressionChangeListener; import main.nl.uva.parser.statement.Statement; import main.nl.uva.ui.UI; import main.nl.uva.validation.type.Bool; public class IfThenUI extends UIElement implements ExpressionChangeListener { protected final JPanel _ifPanel; protected final Expression _expression; public IfThenUI(final Expression expression, final List<Statement> children, final UI parentUI) { super(parentUI); _expression = expression; _expression.registerListener(this); _ifPanel = generateBlockPanel(children, _parentUI); _ifPanel.setVisible(((Bool) expression.getValue()).getValue()); } @Override public JPanel getPanel() { return _ifPanel; } @Override public void onChange() { _ifPanel.setVisible(((Bool) _expression.getValue()).getValue()); } }