func (this *GUI) showOrHideContainerDependingOnIfEval(ifStmt interfaces.If, conditionalContainer *ui.Box) {
	conditionValue := ifStmt.EvalConditionAsBool(this.Symbols)

	// if condition evals to true
	if conditionValue {
		conditionalContainer.Show()
		return
	}

	// condition evals to false
	conditionalContainer.Hide()
}
// VisitIf creates questions embedded in an its body and registers show/hide callbacks
func (this *GUI) VisitIf(ifStmt interfaces.If, context interface{}) interface{} {
	guiQuestions := handleQuestions(this, ifStmt.Questions())
	questionsEncompassingContainer := this.GUIForm.createQuestionTable(guiQuestions)

	this.registerOnShowCallback(func() {
		this.GUIForm.addQuestionContainer(questionsEncompassingContainer)
		this.showOrHideContainerDependingOnIfEval(ifStmt, questionsEncompassingContainer)
	})

	this.Symbols.RegisterCallback(func() {
		log.Debug("Received symbols update callback in If")
		this.showOrHideContainerDependingOnIfEval(ifStmt, questionsEncompassingContainer)
	})

	return nil
}