Example #1
0
        public void MoveNode(MidgetTreeNode node, MidgetTreeNode newParentNode)
        {
            // retrieve old parent
            MidgetTreeNode oldParentNode = (MidgetTreeNode)node.Parent;

            // make sure not just copying to the parent or reorganizing within the parent
            if (!newParentNode.Equals(node) && !newParentNode.Equals(node.Parent) && oldParentNode != null)
            {
                // if child is becoming the parent of it's parent
                foreach (TreeNode childNode in node.Nodes)
                {
                    if (childNode.Equals(newParentNode))
                    {
                        // clone old child and adjust it's parent
                        newParentNode = (MidgetTreeNode)childNode.Clone();
                        oldParentNode.Nodes.Add(newParentNode);

                        oldParentNode.ExpandAll();

                        // removce old child
                        childNode.Remove();
                        break;
                    }
                }

                // remove node from it's old location
                oldParentNode.Nodes.Remove(node);

                // add the node to it's new parent
                newParentNode.Nodes.Add(node);
                newParentNode.ExpandAll();
            }
        }
Example #2
0
        public void MoveNode(MidgetTreeNode node, MidgetTreeNode newParentNode)
        {
            // retrieve old parent
            MidgetTreeNode oldParentNode = (MidgetTreeNode)node.Parent;

            // make sure not just copying to the parent or reorganizing within the parent
            if(!newParentNode.Equals(node) && !newParentNode.Equals(node.Parent) && oldParentNode != null)
            {

                // if child is becoming the parent of it's parent
                foreach (TreeNode childNode in node.Nodes)
                {
                    if(childNode.Equals(newParentNode))
                    {
                        // clone old child and adjust it's parent
                        newParentNode = (MidgetTreeNode)childNode.Clone();
                        oldParentNode.Nodes.Add(newParentNode);

                        oldParentNode.ExpandAll();

                        // removce old child
                        childNode.Remove();
                        break;
                    }
                }

                // remove node from it's old location
                oldParentNode.Nodes.Remove(node);

                // add the node to it's new parent
                newParentNode.Nodes.Add(node);
                newParentNode.ExpandAll();
            }
        }