Esempio n. 1
0
        public void CanBuild_HierarchyBranch_AndAddInitialsChildren_WithDifferent_InitialAsLast()
        {
            HierarchyNode <ContentItem> node = new BranchHierarchyBuilder(a_a, a, true).Build();
            ItemHierarchyNavigator      ih   = new ItemHierarchyNavigator(node);

            EnumerableAssert.Count(5, ih.EnumerateAllItems());
        }
Esempio n. 2
0
        public void BuildHierarchyBranch_SameInitialAndLast()
        {
            HierarchyNode <ContentItem> node = new BranchHierarchyBuilder(a, a).Build();
            ItemHierarchyNavigator      ih   = new ItemHierarchyNavigator(node);

            EnumerableAssert.Count(1, ih.EnumerateAllItems());
        }
Esempio n. 3
0
        public void Parent_IsSet()
        {
            HierarchyNode <ContentItem> node = new BranchHierarchyBuilder(a_a_a, null).Build();

            Assert.That(node.Parent, Is.Null);
            Assert.That(node.Children[0].Parent, Is.EqualTo(node));
            Assert.That(node.Children[0].Children[0].Parent, Is.EqualTo(node.Children[0]));
        }
Esempio n. 4
0
        public void CanBuild_HierarchyBranch()
        {
            HierarchyNode <ContentItem> node = new BranchHierarchyBuilder(a_a_a, null).Build();
            ItemHierarchyNavigator      ih   = new ItemHierarchyNavigator(node);

            Assert.AreEqual(a, ih.Current);
            Assert.IsNull(ih.Parent);
            EnumerableAssert.Count(5, ih.EnumerateAllItems());
        }
        protected override void Render(HtmlTextWriter writer)
        {
            IContentAdapterProvider adapters = Engine.Resolve <IContentAdapterProvider>();

            if (Nodes == null)
            {
                Nodes = new BranchHierarchyBuilder(SelectedItem, RootNode, true)
                {
                    UseMasterVersion = false
                }
            }
Esempio n. 6
0
        protected override void Render(HtmlTextWriter writer)
        {
            IContentAdapterProvider adapters = Engine.Resolve <IContentAdapterProvider>();

            if (Nodes == null)
            {
                Nodes = new BranchHierarchyBuilder(SelectedItem, RootNode, true)
                        .Children((item) => adapters.ResolveAdapter <NodeAdapter>(item).GetChildren(item, Interfaces.Managing))
                        .Build();
            }

            TreeUtility.Write(Nodes, SelectedItem, adapters, Filter, SelectableTypes, SelectableExtensions, excludeRoot: false, target: Target, writer: writer);
        }
Esempio n. 7
0
        internal static HierarchyNode <ContentItem> BuildBranchStructure(ItemFilter filter, IContentAdapterProvider adapters, ContentItem selectedItem, ContentItem root)
        {
            var structure = new BranchHierarchyBuilder(selectedItem, root, true)
            {
                UseMasterVersion = false
            }
            .Children((item) =>
            {
                var q = new N2.Persistence.Sources.Query {
                    Parent = item, OnlyPages = true, Interface = Interfaces.Managing, Filter = filter
                };
                return(adapters.ResolveAdapter <NodeAdapter>(item).GetChildren(q));
            })
            .Build();

            return(structure);
        }
Esempio n. 8
0
        protected virtual Node <TreeNode> CreateContent(HttpContextBase context, SelectionUtility selection)
        {
            var filter = engine.EditManager.GetEditorFilter(context.User);

            var structure = new BranchHierarchyBuilder(selection.SelectedItem, selection.Traverse.RootPage, true)
            {
                UseMasterVersion = false
            }
            .Children((item) =>
            {
                var q = new N2.Persistence.Sources.Query {
                    Parent = item, OnlyPages = true, Interface = Interfaces.Managing, Filter = filter
                };
                return(engine.GetContentAdapter <NodeAdapter>(item).GetChildren(q));
            })
            .Build();

            return(CreateStructure(structure, filter));
        }
Esempio n. 9
0
        protected override void CreateChildControls()
        {
            IContentAdapterProvider adapters = Engine.Resolve <IContentAdapterProvider>();

            if (Nodes == null)
            {
                Nodes = new BranchHierarchyBuilder(SelectedItem, RootNode, true)
                        .Children((item) => adapters.ResolveAdapter <NodeAdapter>(item).GetChildren(item, Interfaces.Managing))
                        .Build();
            }

            var tree = new N2.Web.Tree(Nodes)
                       .OpenTo(SelectedItem)
                       .Filters(Filter)
                       .LinkProvider(item => BuildLink(adapters.ResolveAdapter <NodeAdapter>(item), item, item.Path == SelectedItem.Path, Target))
                       .ToControl();

            AppendExpanderNodeRecursive(tree, Filter, Target, adapters);

            Controls.Add(tree);

            base.CreateChildControls();
        }
Esempio n. 10
0
        private void BuildControlHierarchy(ContentItem currentItem, ContentItem startPage)
        {
            if (currentItem == null)
            {
                currentItem = startPage;
            }

            var children = currentItem.Children.WhereNavigatable();

            if (children.Count > 0)
            {
                currentItem = children[0];
            }
            IEnumerable <ContentItem> ancestors = GetAncestors(currentItem, startPage);
            ContentItem startingPoint           = GetStartingPoint();

            if (startingPoint != null)
            {
                HierarchyBuilder builder = null;

                if (BranchMode)
                {
                    builder = new BranchHierarchyBuilder(currentItem, startingPoint);
                }
                else
                {
                    builder = new TreeHierarchyBuilder(startingPoint, MaxLevels);
                }

                HierarchyNode <ContentItem> node = builder.Children(Filters).Build();
                if (node.Current != null)
                {
                    AddControlsRecursive(this, node, CurrentItem, ancestors);
                }
            }
        }