示例#1
0
        public IEnumerable <object> FindNode(FindNodeContext ctx, ITreeNode root)
        {
            var node = root;

            foreach (var name in Names)
            {
                node.EnsureChildrenLoaded();
                yield return(null);

                var tmp = node.DataChildren.OfType <IDocumentTreeNodeData>().FirstOrDefault(a => a.NodePathName.Equals(name));
                if (tmp == null)
                {
                    yield break;
                }
                node = tmp.TreeNode;
            }
            ctx.Node = node == root ? null : node.Data as IDocumentTreeNodeData;
        }
示例#2
0
        IEnumerable <object> GetNodes(GetNodesContext ctx, IDocumentTreeView documentTreeView)
        {
            var list    = new List <DocumentTreeNodeData>();
            var root    = documentTreeView.TreeView.Root;
            var findCtx = new FindNodeContext();

            foreach (var path in Paths)
            {
                foreach (var o in path.FindNode(findCtx, root))
                {
                    yield return(o);
                }
                if (findCtx.Node == null)
                {
                    yield break;
                }
                list.Add(findCtx.Node);
            }
            ctx.Nodes = list.ToArray();
        }
示例#3
0
		public IEnumerable<object> FindNode(FindNodeContext ctx, ITreeNode root) {
			var node = root;
			foreach (var name in Names) {
				node.EnsureChildrenLoaded();
				yield return null;
				var tmp = node.DataChildren.OfType<DocumentTreeNodeData>().FirstOrDefault(a => a.NodePathName.Equals(name));
				if (tmp == null)
					yield break;
				node = tmp.TreeNode;
			}
			ctx.Node = node == root ? null : node.Data as DocumentTreeNodeData;
		}
示例#4
0
		IEnumerable<object> GetNodes(GetNodesContext ctx, IDocumentTreeView documentTreeView) {
			var list = new List<DocumentTreeNodeData>();
			var root = documentTreeView.TreeView.Root;
			var findCtx = new FindNodeContext();
			foreach (var path in Paths) {
				foreach (var o in path.FindNode(findCtx, root))
					yield return o;
				if (findCtx.Node == null)
					yield break;
				list.Add(findCtx.Node);
			}
			ctx.Nodes = list.ToArray();
		}