/// <devdoc>
        /// Copies the tree node and the  entire subtree rooted at this tree node.
        /// </devdoc>
        public override object Clone()
        {
            ConfigurationTreeNode clone = (ConfigurationTreeNode)base.Clone();

            clone.configurationNode = configurationNode;
            clone.children          = children;
            return(clone);
        }
        private void AddChildeNode(ConfigurationNodeChangedEventArgs e)
        {
            ConfigurationTreeNode newNode = CreateChildNode(e.Node);

            if (newNode.ConfigurationNode.Parent.SortChildren)
            {
                AddSorted(newNode);
            }
            else
            {
                this.Nodes.Add(newNode);
            }
            foreach (ConfigurationNode child in e.Node.Nodes)
            {
                newNode.OnChildAdded(newNode, new ConfigurationNodeChangedEventArgs(ConfigurationNodeChangedAction.Insert, child, e.Node));
            }
        }
Beispiel #3
0
        /// <devdoc>
        /// Creates a new intance of a ConfigurationTreeNode class and sets its ImageIndex and SelectedImageIndex property values.
        /// </devdoc>
        public static ConfigurationTreeNode Create(ConfigurationNode node)
        {
            Type nodeType     = node.GetType();
            Type treeNodeType = GetTreeNodeType(nodeType);
            ConfigurationTreeNode treeNode = (ConfigurationTreeNode)Activator.CreateInstance(treeNodeType, new object[] { node });

            if (Current.imageContainer != null)
            {
                treeNode.ImageIndex         = Current.imageContainer.GetImageIndex(nodeType);
                treeNode.SelectedImageIndex = Current.imageContainer.GetSelectedImageIndex(nodeType);
            }
            if (Current.treeNodeContainer != null)
            {
                Current.treeNodeContainer.AddTreeNode(treeNode);
            }
            return(treeNode);
        }
        private void OnChildInserted(object sender, ConfigurationNodeChangedEventArgs args)
        {
            ConfigurationNode     node        = args.Node;
            ConfigurationTreeNode treeNode    = CreateChildNode(node);
            ConfigurationNode     nextSibling = node.NextSibling;

            if (nextSibling != null)
            {
                ConfigurationTreeNode siblingTreeNode = TreeNodeFactory.GetTreeNode(node.NextSibling.Id);
                Nodes.Insert(siblingTreeNode.Index, treeNode);
            }
            else
            {
                Nodes.Add(treeNode);
            }

            treeNode.TreeView.SelectedNode = treeNode;
        }
        private int AddSorted(ConfigurationTreeNode node)
        {
            int    index           = 0;
            string nodeDisplayName = node.Text;
            int    childCount      = Nodes.Count;

            if (childCount > 0)
            {
                CompareInfo compare = CultureInfo.CurrentCulture.CompareInfo;
                if (compare.Compare(Nodes[childCount - 1].Text, nodeDisplayName) <= 0)
                {
                    index = childCount;
                }
                else
                {
                    int firstNode   = 0;
                    int lastNode    = 0;
                    int compareNode = 0;
                    for (firstNode = 0, lastNode = childCount; firstNode < lastNode;)
                    {
                        compareNode = (firstNode + lastNode) / 2;
                        if (compare.Compare(Nodes[compareNode].Text, nodeDisplayName) <= 0)
                        {
                            firstNode = compareNode + 1;
                        }
                        else
                        {
                            lastNode = compareNode;
                        }
                    }
                    index = firstNode;
                }
            }
            Nodes.Insert(index, node);
            return(index);
        }
        /// <devdoc>
        /// Creates a ConfigurationTreeNode using the TreeNodeFactory of the current ConfigurationTreeView.
        /// </devdoc>
        protected ConfigurationTreeNode CreateChildNode(ConfigurationNode node)
        {
            ConfigurationTreeNode treeNode = TreeNodeFactory.Create(node);

            return(treeNode);
        }
 private int AddSorted(ConfigurationTreeNode node)
 {
     int index = 0;
     string nodeDisplayName = node.Text;
     int childCount = Nodes.Count;
     if (childCount > 0)
     {
         CompareInfo compare = CultureInfo.CurrentCulture.CompareInfo;
         if (compare.Compare(Nodes[childCount-1].Text, nodeDisplayName) <= 0)
         {
             index = childCount;
         }
         else
         {
             int firstNode = 0;
             int lastNode = 0;
             int compareNode = 0;
             for (firstNode = 0, lastNode = childCount; firstNode < lastNode;)
             {
                 compareNode = (firstNode + lastNode) / 2;
                 if (compare.Compare(Nodes[compareNode].Text, nodeDisplayName) <= 0)
                 {
                     firstNode = compareNode + 1;
                 }
                 else
                 {
                     lastNode = compareNode;
                 }
             }
             index = firstNode;
         }
     }
     Nodes.Insert(index, node);
     return index;
 }
Beispiel #8
0
 private void UpdateSelection(ConfigurationTreeNode treeNode)
 {
     using (new WaitCursor())
     {
         object[] objects = new object[] {treeNode.ConfigurationNode};
         propertyGrid.SelectedObjects = objects;
     }
 }
Beispiel #9
0
 private void SetSelectedNode(ConfigurationTreeNode selectedNode)
 {
     treeView.SelectedNode = null;
     treeView.SelectedNode = selectedNode;
 }
Beispiel #10
0
 private void SetSelectedHierarchy(ConfigurationTreeNode node)
 {
     IUIHierarchyService hierarchyService = (IUIHierarchyService)designHost.GetService(typeof(IUIHierarchyService));
     hierarchyService.SelectedHierarchy = node.ConfigurationNode.Hierarchy;
 }
Beispiel #11
0
 private void LoadMenuItemsFromNode(ConfigurationTreeNode node, MenuItem[] menuItems)
 {
     IMenuContainerService service = (IMenuContainerService)designHost.GetService(typeof(IMenuContainerService));
     node.ConfigurationNode.AddMenuItems(service);
     AddMenus(menuItems);
 }
Beispiel #12
0
 private void InitializeHierarchy()
 {
     TreeNodeFactory.SetImageContainer(new ConfigurationNodeImageContainer(treeViewImageList));
     SolutionConfigurationNode solutionNode = new SolutionConfigurationNode();
     IUIHierarchy hierarchy = ConfigurationUIHierarchyFactory.Create(solutionNode, designHost);
     IUIHierarchyService service = designHost.GetService(typeof(IUIHierarchyService)) as IUIHierarchyService;
     service.AddHierarchy(hierarchy);
     service.HierarchyAdded += new HierarchyAddedEventHandler(OnHierarchyAdded);
     service.HierarchyRemoved += new HierarchyRemovedEventHandler(OnHierarchyRemoved);
     solutionTreeNode = TreeNodeFactory.Create(solutionNode);
     treeView.Nodes.Add(solutionTreeNode);
     SetSelectedNode(solutionTreeNode);
 }
Beispiel #13
0
 /// <devdoc>
 /// Adds the specified ConfigurationTreeNode to the container.
 /// </devdoc>
 public void AddTreeNode(ConfigurationTreeNode treeNode)
 {
     treeNodes[treeNode.ConfigurationNode.Id] = treeNode;
 }
Beispiel #14
0
 /// <devdoc>
 /// Adds the specified ConfigurationTreeNode to the container.
 /// </devdoc>
 public void AddTreeNode(ConfigurationTreeNode treeNode)
 {
     treeNodes[treeNode.ConfigurationNode.Id] = treeNode;
 }