示例#1
0
        public void Build(StuctureItemCollection list)
        {
            this.ImageList = Program.Window.SPMimageList;
            // Dispose all objects
            ClearNodes(this.Nodes);

            //var rules = CompositionProvider.GetOrderedExports<IRule<ISPNode>>();
            var rules = IoCContainer.Resolve <IEnumerable <IRule <ISPNode> > >().Ordered();

            SPProvider           = new SPNodeProvider(SPFarm.Local, rules, IoCContainer);
            SPProvider.ViewLevel = ViewLevel;
            SPProvider.GetLocalizedTextFunction = p => SPMLocalization.GetString(p);
            Trace.WriteLine("ViewLevel: " + SPProvider.ViewLevel);
            var treeViewProvider = new TreeViewNodeProvider(SPProvider, IoCContainer);

            FarmNode = treeViewProvider.LoadFarmNode();

            this.Nodes.Add(FarmNode);

            if (list != null)
            {
                FarmNode.Reload(FarmNode, list);
            }
            else
            {
                ExpandToDefault(FarmNode, DefaultExpandTypes);
            }
        }
示例#2
0
        public StuctureItemCollection SaveStucture()
        {
            var list = new StuctureItemCollection();

            list.Add(CloneNode(this));
            var child = this.Parent as SPTreeNode;

            while (child != null)
            {
                list.Insert(0, CloneNode(child));
                child = child.Parent as SPTreeNode;
            }

            return(list);
        }
示例#3
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;
            }
        }
示例#4
0
        public StuctureItemCollection SaveStucture()
        {
            var list = new StuctureItemCollection();

            list.Add(CloneNode(this));
            var child = this.Parent as SPTreeNode;
            while (child != null)
            {
                list.Insert(0, CloneNode(child));
                child = child.Parent as SPTreeNode;
            }

            return list;
        }
示例#5
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;
            }
        }
示例#6
0
        public void Build(StuctureItemCollection list)
        {
            this.ImageList = Program.Window.SPMimageList;
            // Dispose all objects
            ClearNodes(this.Nodes);

            //var rules = CompositionProvider.GetOrderedExports<IRule<ISPNode>>();
            var rules = IoCContainer.Resolve<IEnumerable<IRule<ISPNode>>>().Ordered();

            SPProvider = new SPNodeProvider(SPFarm.Local, rules, IoCContainer);
            SPProvider.ViewLevel = ViewLevel;
            SPProvider.GetLocalizedTextFunction = p => SPMLocalization.GetString(p);
            Trace.WriteLine("ViewLevel: " + SPProvider.ViewLevel);
            var treeViewProvider = new TreeViewNodeProvider(SPProvider, IoCContainer);
            FarmNode = treeViewProvider.LoadFarmNode();

            this.Nodes.Add(FarmNode);

            if (list != null)
            {
                FarmNode.Reload(FarmNode, list);
            }
            else
            {
                ExpandToDefault(FarmNode, DefaultExpandTypes);
            }
        }