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]);
        }