Exemple #1
0
        private StuctureItem CloneNode(SPTreeNode source)
        {
            var result = new StuctureItem();

            result.ID = (String.IsNullOrEmpty(source.Model.ID)) ? source.Index.ToString() : source.Model.ID;
            return(result);
        }
Exemple #2
0
        public IEnumerable<SPTreeNode> LoadChildren(SPTreeNode parentNode)
        {
            var model = parentNode.Model;

            var index = model.Children.Count;

            model.LoadChildren();

            // Load new nodes
            var list = new List<SPTreeNode>();
            for (var count = index; count < parentNode.Model.Children.Count; count++)
            {
                var spNode = parentNode.Model.Children[count];

                var treeNode = SPTreeNode.Create(this, spNode);
                parentNode.Nodes.Insert(count, treeNode);
                list.Add(treeNode);
            }

            var modelCollection = model as ISPNodeCollection;
            if (modelCollection == null) return list;

            // Add more node
            if (modelCollection.LoadingChildren)
            {
                var moreNode = new MoreNode(modelCollection);
                moreNode.NodeProvider = modelCollection.NodeProvider;
                var spNode = SPMoreNode.Create(this, moreNode);
                list.Add(spNode);
                parentNode.Nodes.Add(spNode);
            }

            return list;
        }
Exemple #3
0
        public static SPTreeNode Create(ITreeViewNodeProvider provider, ISPNode spNode)
        {
            var node = new SPTreeNode(spNode);

            node.NodeProvider = provider;

            return(node);
        }
Exemple #4
0
        public SPTreeNode Load(ISPNode spNode)
        {
            var root = SPTreeNode.Create(this, spNode);

            LoadTreeNodes(root);

            return(root);
        }
Exemple #5
0
        public SPTreeNode LoadFarmNode()
        {
            var spFarmNode = SPProvider.LoadFarmNode();
            var node       = SPTreeNode.Create(this, spFarmNode);

            node.Setup();
            //node.IsExpanded = true;
            return(node);
        }
Exemple #6
0
        public void Initialize(SPTreeNode treeNode)
        {
            TreeNode = treeNode;

            this.Items.AddRange(EnsureTreeNode(IoCContainer.Resolve<IEnumerable<ISPMenuItem>>(TreeNode.Model.GetType().AssemblyQualifiedName), TreeNode));
            if (this.Items.Count > 0)
            {
                this.Items.Add(new ToolStripSeparator());
            }
            this.Items.AddRange(EnsureTreeNode(IoCContainer.Resolve<IEnumerable<ISPMenuItem>>(this.GetType().AssemblyQualifiedName), TreeNode));
        }
Exemple #7
0
        private void LoadTreeNodes(SPTreeNode parent)
        {
            if (parent.Model.Children.Count == 0)
            {
                return;
            }

            parent.Nodes.AddRange(parent.Model.Children.Select(spNode => SPTreeNode.Create(this, spNode)).ToArray());

            foreach (SPTreeNode item in parent.Nodes)
            {
                LoadTreeNodes(item);
            }
        }
Exemple #8
0
        public void Reload(SPTreeNode parent, StuctureItemCollection list)
        {
            var parentTreeview = TreeView as TreeViewComponent;

            if (parentTreeview == null)
            {
                return;
            }

            if (list == null || list.Count <= 1)
            {
                // End of the line, set the selectedNode and return
                parentTreeview.SelectedNode = parent;
                return;
            }

            list.RemoveAt(0);

            var item = list[0];

            Trace.WriteLine("Expand node: " + parent.Text);
            Trace.WriteLine("Find child node: " + item.ID);

            parent.HasChildrenLoaded = false;
            parentTreeview.ExpandNode(parent);

            var found = false;

            foreach (SPTreeNode node in parent.Nodes)
            {
                //var nodeID = (String.IsNullOrEmpty(node.Model.ID)) ? node.Index.ToString() : node.Model.ID;
                if (node.Model.ID == item.ID)
                {
                    Trace.WriteLine("Child node found: " + item.ID);
                    found = true;
                    Reload(node, list);
                    break;
                }
            }
            if (!found)
            {
                parentTreeview.SelectedNode = parent;
            }
        }
Exemple #9
0
        public IEnumerable <SPTreeNode> LoadChildren(SPTreeNode parentNode)
        {
            var model = parentNode.Model;

            var index = model.Children.Count;

            model.LoadChildren();

            // Load new nodes
            var list = new List <SPTreeNode>();

            for (var count = index; count < parentNode.Model.Children.Count; count++)
            {
                var spNode = parentNode.Model.Children[count];

                var treeNode = SPTreeNode.Create(this, spNode);
                parentNode.Nodes.Insert(count, treeNode);
                list.Add(treeNode);
            }


            var modelCollection = model as ISPNodeCollection;

            if (modelCollection == null)
            {
                return(list);
            }

            // Add more node
            if (modelCollection.LoadingChildren)
            {
                var moreNode = new MoreNode(modelCollection);
                moreNode.NodeProvider = modelCollection.NodeProvider;
                var spNode = SPMoreNode.Create(this, moreNode);
                list.Add(spNode);
                parentNode.Nodes.Add(spNode);
            }

            return(list);
        }
Exemple #10
0
        private void ExplorerClick(SPTreeNode treeNode)
        {
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                this.toolStripStatusLabel.Text = treeNode.ToolTipText;
                UpdateMenu(treeNode);

                ArrayList nodeColl = new ArrayList(treeNode.GetTabPages());

                int i = 0;
                while (i < tabControl.TabPages.Count)
                {
                    TabPage page = tabControl.TabPages[i];
                    if (nodeColl.Contains(page))
                    {
                        i++;
                    }
                    else
                    {
                        tabControl.TabPages.Remove(page);
                    }
                }

                foreach (TabPage page in nodeColl)
                {
                    if (!tabControl.Contains(page))
                    {
                        tabControl.TabPages.Add(page);
                    }
                }

            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
Exemple #11
0
 private StuctureItem CloneNode(SPTreeNode source)
 {
     var result = new StuctureItem();
     result.ID = (String.IsNullOrEmpty(source.Model.ID)) ? source.Index.ToString() : source.Model.ID;
     return result;
 }
Exemple #12
0
        public void Reload(SPTreeNode parent, StuctureItemCollection list)
        {
            var parentTreeview = TreeView as TreeViewComponent;
            if (parentTreeview == null)
                return;

            if (list == null || list.Count <= 1)
            {
                // End of the line, set the selectedNode and return
                parentTreeview.SelectedNode = parent;
                return;
            }

            list.RemoveAt(0);

            var item = list[0];

            Trace.WriteLine("Expand node: " + parent.Text);
            Trace.WriteLine("Find child node: " + item.ID);

            parent.HasChildrenLoaded = false;
            parentTreeview.ExpandNode(parent);

            var found = false;
            foreach (SPTreeNode node in parent.Nodes)
            {
                //var nodeID = (String.IsNullOrEmpty(node.Model.ID)) ? node.Index.ToString() : node.Model.ID;
                if (node.Model.ID == item.ID)
                {
                    Trace.WriteLine("Child node found: " + item.ID);
                    found = true;
                    Reload(node, list);
                    break;
                }
            }
            if (!found)
            {
                parentTreeview.SelectedNode = parent;
            }
        }
Exemple #13
0
        public static SPTreeNode Create(ITreeViewNodeProvider provider, ISPNode spNode)
        {
            var node = new SPTreeNode(spNode);
            node.NodeProvider = provider;

            return node;
        }
Exemple #14
0
        private void ExpandToDefault(SPTreeNode parent, List<string> types)
        {
            if(types == null || types.Count <= 0)
            {
                this.SelectedNode = parent;
                return;
            }
            ExpandNode(parent);
            var item = types[0];

            types.RemoveAt(0);

            foreach (SPTreeNode node in parent.Nodes)
            {
                if (item.Equals(node.Model.GetType().Name))
                {
                    ExpandToDefault(node, types);
                    break;
                }
            }
        }
Exemple #15
0
        private ToolStripItem[] EnsureTreeNode(IEnumerable<ISPMenuItem> collection, SPTreeNode treeNode)
        {
            var list = new List<ToolStripItem>();

            foreach (var menuItem in collection)
            {
                if (menuItem != null)
                {
                    menuItem.TreeNode = treeNode;
                }
                list.Add((ToolStripItem)menuItem);
            }
            return list.ToArray();
        }
Exemple #16
0
        private void LoadTreeNodes(SPTreeNode parent)
        {
            if (parent.Model.Children.Count == 0) return;

            parent.Nodes.AddRange(parent.Model.Children.Select(spNode => SPTreeNode.Create(this, spNode)).ToArray());

            foreach (SPTreeNode item in parent.Nodes)
            {
                LoadTreeNodes(item);
            }
        }