Exemplo n.º 1
0
        /// <summary>
        /// Adds a project tree node as a child of another project tree node
        /// </summary>
        /// <param name="node">The project node to add as a child of another node</param>
        /// <param name="parent">The parent node to child the first node</param>
        /// <param name="operation">The operation to perform</param>
        protected void InternalSetParent(ProjectTreeNode node, NestedProjectTreeNode parent, SetParentOperation operation)
        {
            if (operation == SetParentOperation.Add)
            {
                if (node.parentNode != parent)
                {
                    throw new ArgumentException(@"The provided node is not a child of this node", nameof(node));
                }
            }
            else
            {
                if (node.parentNode != null)
                {
                    throw new ArgumentException(@"Cannot add as a child a node that is already parented by another node", nameof(node));
                }
            }

            node.parentNode = parent;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Removes a project tree node as a child of this project tree node
        /// </summary>
        /// <param name="node">The project node to remove as a child of this node</param>
        public void RemoveChild(ProjectTreeNode node)
        {
            InternalSetParent(node, this, SetParentOperation.Remove);

            childrenNodes.Remove(node);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Adds a project tree node as a child of this project tree node
        /// </summary>
        /// <param name="node">The project node to add as a child of this node</param>
        public void AddChild(ProjectTreeNode node)
        {
            InternalSetParent(node, this, SetParentOperation.Add);

            childrenNodes.Add(node);
        }