Exemple #1
0
        /// <summary>
        /// この要素を指定した要素の子要素としてコピーします。</summary>
        ///
        public void CopyTo(TreeElement aTargetElement)
        {
            if (aTargetElement == null)
            {
                throw new ArgumentNullException("aTargetElement");
            }

            aTargetElement.Add(( TreeElement )this.Clone());
        }
Exemple #2
0
        /// <summary>
        /// この要素を指定した要素の子要素として移動します。</summary>
        ///
        public void MoveTo(TreeElement aTargetElememnt)
        {
            if (aTargetElememnt == null)
            {
                throw new ArgumentNullException("aTargetElememnt");
            }
            if (this.IsContains(aTargetElememnt))
            {
                throw new InvalidOperationException("移動先の要素はこの要素の子要素です。またはこの要素自身です。");
            }

            TreeElement moveElement = this;

            this.Remove();
            aTargetElememnt.Add(moveElement);
        }
Exemple #3
0
        /// <summary>
        /// TreeElement のディープコピーを取得します。</summary>
        ///
        public Object Clone()
        {
            TreeElement cloneElement = new TreeElement(Value, Name, Kind);

            if (HasChild)
            {
                foreach (TreeElement element in ChildElements)
                {
                    TreeElement newSubElement = new TreeElement(element.Value, element.Name, element.Kind);
                    cloneElement.Add(newSubElement);

                    if (element.HasChild)
                    {
                        TreeElement childElement = ( TreeElement )element.Clone();
                        newSubElement.AddElements(childElement.ChildElements);
                    }
                }
            }

            return(cloneElement);
        }