private static void PopulateTreeNodesRecursive(TreeNode node,
                                                       SPSNodeCollection dataChildrens,
                                                       TreeBound delegateBound)
        {
            foreach (SPSNodeBase subDataNode in dataChildrens)
            {
                TreeNode newNode = new TreeNode(subDataNode.Name,
                                                subDataNode.UrlSegment,
                                                subDataNode.ImageUrl,
                                                subDataNode.NavigateUrl,
                                                "");

                node.ChildNodes.Add(newNode);

                Debug.WriteLine(string.Format("-> {0},{1},{2},{3}",
                                              subDataNode.Name,
                                              subDataNode.UrlSegment,
                                              subDataNode.ImageUrl,
                                              subDataNode.NavigateUrl));

                if (delegateBound != null)
                {
                    delegateBound(newNode, subDataNode);
                }

                PopulateTreeNodesRecursive(newNode, subDataNode.Children, delegateBound);
                subDataNode.Dispose();
            }
        }
        /// <summary>
        /// Makes the tree view.
        /// </summary>
        /// <param name="dataSource">The data source.</param>
        /// <param name="delegateBound">The delegate bound.</param>
        /// <returns></returns>
        public static TreeView MakeTreeView(SPSHierarchyDataSource dataSource, TreeBound delegateBound)
        {
            TreeView tree = new TreeView();

            tree.Nodes.Add(MakeTreeViewInternal(dataSource.Root, delegateBound));
            DecorateTree(tree);
            return(tree);
        }
        private static TreeNode PopulateTreeNodes(SPSHierarchyDataSource dataSource, TreeBound delegateBound)
        {
            TreeNode root;

            using (SPSNodeCollection dataNodes = dataSource.GetAll())
            {
                SPSNodeBase dataRoot = dataNodes[0];
                root = new TreeNode(dataRoot.Name, dataRoot.UrlSegment, dataRoot.ImageUrl, dataRoot.NavigateUrl, "");

                if (delegateBound != null)
                {
                    delegateBound(root, dataRoot);
                }

                PopulateTreeNodesRecursive(root, dataRoot.Children, delegateBound);
            }
            return(root);
        }
        /// <summary>
        /// Gets the tree.
        /// </summary>
        /// <param name="spsRoot">The SPS root.</param>
        /// <param name="delegateBound">The delegate bound.</param>
        /// <returns></returns>
        private static TreeNode MakeTreeViewInternal(ISPSTreeNode <ISPSHierarchyNode> spsRoot, TreeBound delegateBound)
        {
            ISPSHierarchyNode node     = spsRoot.Node;
            TreeNode          treeNode = new TreeNode(node.Name, node.UrlSegment, node.ImageUrl, node.NavigateUrl, "");

            if (delegateBound != null)
            {
                delegateBound(treeNode, node);
            }

            foreach (ISPSTreeNode <ISPSHierarchyNode> child in spsRoot.Children)
            {
                treeNode.ChildNodes.Add(MakeTreeViewInternal(child, delegateBound));
            }

            return(treeNode);
        }
        /// <summary>
        /// Makes the tree view.
        /// </summary>
        /// <param name="spsRoot">The SPS root.</param>
        /// <param name="delegateBound">The delegate bound.</param>
        /// <returns></returns>
        public static TreeView MakeTreeView(ISPSTreeNode <ISPSHierarchyNode> spsRoot, TreeBound delegateBound)
        {
            TreeView tree = new TreeView();

            tree.Nodes.Add(MakeTreeViewInternal(spsRoot, delegateBound));
            DecorateTree(tree);
            return(tree);
        }
 public static void PopulateTreeView(TreeView tree, SPSHierarchyDataSource dataSource, TreeBound delegateBound)
 {
     if (tree != null && dataSource != null)
     {
         TreeNode treeNode = PopulateTreeNodes(dataSource, delegateBound);
         if (treeNode != null)
         {
             tree.Nodes.Add(treeNode);
             DecorateTree(tree);
         }
     }
     else
     {
         throw new ArgumentNullException();
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// Fill the tree view.
 /// </summary>
 /// <param name="treeView">The tree view.</param>
 /// <param name="spsRoot">The SPS root.</param>
 /// <param name="delegateBound">The delegate bound.</param>
 public static void FillTreeView(TreeView treeView, ISPSTreeNode <ISPSHierarchyNode> spsRoot, TreeBound delegateBound)
 {
     treeView.Nodes.Add(MakeTreeViewInternal(spsRoot, delegateBound));
     DecorateTree(treeView);
 }