Пример #1
0
        /// <summary>
        /// Builds this instance into a Nova Tree Module.
        /// </summary>
        /// <param name="tree">The tree.</param>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        internal NovaTreeModule Build(INovaTree tree, INavigatablePage page)
        {
            var nodes  = BuildNovaTreeNodes(page);
            var module = new NovaTreeModule(Title, tree, nodes);

            return(module);
        }
Пример #2
0
        /// <summary>
        /// Builds the nova treenode step.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        internal override NovaTreeNodeStep Build(INavigatablePage page)
        {
            var command = page.CreateNavigationalAction <TView, TViewModel>(Id, _parameters);
            var node    = new NovaTreeNodeStep <TView, TViewModel>(Id, Title, command);

            return(node);
        }
Пример #3
0
        /// <summary>
        /// Builds the node.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <param name="isStartupNode">if set to <c>true</c> [is startup node].</param>
        /// <returns></returns>
        internal override NovaTreeNodeBase Build(INavigatablePage page, bool isStartupNode)
        {
            var steps = _steps.Select(x => x.Build(page));
            var group = Guid.NewGuid();
            var node  = new NovaMultiStepTreeNode(Title, steps, group, isStartupNode);

            return(node);
        }
Пример #4
0
        /// <summary>
        /// Builds this instance into a Nova Tree Node
        /// </summary>
        /// <param name="page">The page.</param>
        /// <param name="isStartupNode">if set to <c>true</c> [is startup node].</param>
        /// <returns></returns>
        internal override NovaTreeNodeBase Build(INavigatablePage page, bool isStartupNode)
        {
            var command = _createNavigationalAction(page);

            var node = new NovaTreeNode(_id, Title, _pageType, _viewModelType, command, isStartupNode);

            return(node);
        }
Пример #5
0
        /// <summary>
        /// Builds the nodes.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        internal IEnumerable <NovaTreeNodeBase> BuildNovaTreeNodes(INavigatablePage page)
        {
            var nodes = _treeNodes.OrderByDescending(x => x.Rank)
                        .Select(x => x.Build(page, x == _startUpTreeNode))
                        .Distinct()
                        .ToList()
                        .AsReadOnly();

            return(nodes);
        }
Пример #6
0
        /// <inheritdoc />
        public bool Navigate(INavigatablePage page, object parameter)
        {
            if (page.PlatformPage is Type pageType)
            {
                return(Frame.Navigate(pageType, parameter));
            }

            throw new ArgumentException("指定平台 page.PlatformPage 不是 Type" +
                                        $"\r\n can not convert {page.PlatformPage.GetType()} to Type");
        }
Пример #7
0
 /// <inheritdoc />
 public bool Navigate(INavigatablePage page, object parameter)
 {
     return(Frame.Navigate(page.PlatformPage, parameter));
 }
Пример #8
0
 /// <summary>
 /// 创建包含页面
 /// </summary>
 /// <param name="viewModel"></param>
 /// <param name="page"></param>
 public ViewModelPage(INavigatableViewModel viewModel, INavigatablePage page)
 {
     ViewModel = viewModel;
     Page      = page;
     Key       = viewModel.Name;
 }
Пример #9
0
        /// <summary>
        /// Builds this instance into a Nova Tree Module.
        /// </summary>
        /// <param name="tree">The tree.</param>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        internal NovaTreeModule Build(INovaTree tree, INavigatablePage page)
        {
            var nodes = BuildNovaTreeNodes(page);
            var module = new NovaTreeModule(Title, tree, nodes);

            return module;
        }
Пример #10
0
        /// <summary>
        /// Builds the nodes.
        /// </summary>
        /// <param name="page">The page.</param>
        /// <returns></returns>
        internal IEnumerable<NovaTreeNodeBase> BuildNovaTreeNodes(INavigatablePage page)
        {
            var nodes = _treeNodes.OrderByDescending(x => x.Rank)
                                  .Select(x => x.Build(page, x == _startUpTreeNode))
                                  .Distinct()
                                  .ToList()
                                  .AsReadOnly();

            return nodes;
        }
Пример #11
0
 /// <summary>
 /// Builds the node.
 /// </summary>
 /// <param name="page">The page.</param>
 /// <param name="isStartupNode">if set to <c>true</c> [is startup node].</param>
 /// <returns></returns>
 internal abstract NovaTreeNodeBase Build(INavigatablePage page, bool isStartupNode);