public void Visit(ControlUnit node) { YesnoWrapper evaluatedResult = (YesnoWrapper)ReferenceTables.GetValueOrNull(node.Expression); _parentExpressionDidNotEvaluate = !evaluatedResult.ToBool(); if (node.ConditionTrueBlock != null) { node.ConditionTrueBlock.Accept(this); } _parentExpressionDidNotEvaluate = false; if (node.ConditionFalseBlock != null) { node.ConditionFalseBlock.Accept(this); } }
public void Visit(StatementUnit node) { ITerminalWrapper evaluatedResult = ReferenceTables.GetValueOrNull(node.Expression); node.Value = evaluatedResult; WidgetBase unitWrapper = _widgetFactory.GetWidget(node); unitWrapper.Visibility = _parentExpressionDidNotEvaluate ? Visibility.Collapsed : Visibility.Visible; int index = _elementsToDisplay.ToList().FindIndex(elem => elem.Unit.Identifier == unitWrapper.Unit.Identifier); if (index < 0) { _elementsToDisplay.Add(unitWrapper); } else { _elementsToDisplay[index].Visibility = unitWrapper.Visibility; } }