public virtual void Visit(ITreeNodeVisitor visitor)
 {
     foreach (TreeNode treeNode in this)
     {
         treeNode.Visit(visitor);
     }
 }
示例#2
0
        public override void Accept(ITreeNodeVisitor v)
        {
            v.Visit(this);

            foreach (var c in Children)
            {
                c.Accept(v);
            }
        }
示例#3
0
        /// <summary>
        /// Perform a operation over all tree nodes in the
        /// specified order. The operation is specified
        /// through a visitor object.
        /// </summary>
        public void WalkTree(TreeNode nodeFrom, ITreeNodeVisitor visitor)
        {
            visitor.Visit(nodeFrom);

            foreach (TreeNode child in nodeFrom.Children)
            {
                WalkTree(child, visitor);
            }
        }
示例#4
0
 /// <summary>
 /// Applies a visitor to each ancestor
 /// </summary>
 /// <param name="visitor">
 /// The visitor.
 /// </param>
 public void Climb(ITreeNodeVisitor <T> visitor)
 {
     if (!visitor.Completed)
     {
         visitor.Visit(this);
     }
     if (!visitor.Completed && this.Parent != null)
     {
         Parent.Climb(visitor);
     }
 }
示例#5
0
        /// <summary>
        /// Applies a visitor to each node in a traversal.
        /// </summary>
        /// <param name="visitor">
        /// The action.
        /// </param>
        public void Traverse(ITreeNodeVisitor <T> visitor)
        {
            if (!visitor.Completed)
            {
                visitor.Visit(this);
            }

            foreach (var child in this._children)
            {
                child.Traverse(visitor);
                if (visitor.Completed)
                {
                    break;
                }
            }
        }
示例#6
0
		/// <summary>
		/// Perform a operation over all tree nodes in the
		/// specified order. The operation is specified
		/// through a visitor object.
		/// </summary>
		public void WalkTree(TreeNode nodeFrom, ITreeNodeVisitor visitor)
		{
			visitor.Visit(nodeFrom);

			foreach(TreeNode child in nodeFrom.Children)
				WalkTree(child, visitor);
		}
示例#7
0
 public void Accept(ITreeNodeVisitor visitor)
 {
     visitor.Visit(this);
 }
示例#8
0
 public virtual void Visit(ITreeNodeVisitor treeNodeVisitor)
 {
     treeNodeVisitor.Accept(this);
     Nodes.Visit(treeNodeVisitor);
 }
 public override void Accept(ITreeNodeVisitor visitor)
 {
     visitor.Visit(this);
 }
示例#10
0
 public abstract void Accept(ITreeNodeVisitor visitor);
示例#11
0
 public virtual void Visit(ITreeNodeVisitor treeNodeVisitor)
 {
     treeNodeVisitor.Accept(this);
     Nodes.Visit(treeNodeVisitor);
 }
示例#12
0
 public void Accept(ITreeNodeVisitor visitor)
 {
     visitor.Visit(this);
 }
示例#13
0
 public override void Accept(ITreeNodeVisitor visitor)
 {
     visitor.Visit(this);
 }
示例#14
0
 public abstract void Accept(ITreeNodeVisitor visitor);