private ICustomParametersPresenter presenterFor(ITreeNode node) { if (!_parameterPresenterCache.Contains(node)) { var hasParameters = allVisibleParametersIn(node).Any(); var presenter = _parametersPresenterMapper.MapFrom(node); if (presenter != null && (hasParameters || presenter.ForcesDisplay)) { presenter.InitializeWith(CommandCollector); presenter.StatusChanged += OnStatusChanged; presenter.Description = descriptionFor(node); } else { presenter = _noItemInSelectionPresenter; presenter.Description = NoSelectionCaption; } _parameterPresenterCache.Add(node, presenter); } return(_parameterPresenterCache[node]); }