public FindResult(FindPredicate findPredicate, BookmarkEnumerator bookmarkEnumerator, FindMatch match) { FindPredicate = findPredicate; Bookmark = bookmarkEnumerator.Current; Document = bookmarkEnumerator.Document; LocationName = bookmarkEnumerator.GetLocationName(findPredicate.DisplaySettings); LocationType = bookmarkEnumerator.GetLocationType(); FindMatch = match; IsValid = true; }
public FindResult ChangeDocument(SrmDocument document) { var result = new FindResult(this) { Document = document }; var bookMarkEnumerator = BookmarkEnumerator.TryGet(document, Bookmark); FindMatch findMatch = null; if (bookMarkEnumerator != null) { findMatch = FindPredicate.Match(bookMarkEnumerator); } if (findMatch == null) { result.IsValid = false; } else { result.IsValid = true; result.FindMatch = findMatch; } return(result); }
public Accessible FindDescendant(FindPredicate d, bool breadthFirst, params object [] args) { if (breadthFirst) return FindDescendantBreadthFirst (d, args); else return FindDescendantDepthFirst (d, args); }
private Accessible FindDescendantDepthFirst(FindPredicate d, object [] args) { if (StateSet.Contains (StateType.ManagesDescendants)) return null; Accessible [] childrenCopy = new Accessible [Children.Count]; children.CopyTo (childrenCopy, 0); foreach (Accessible a in childrenCopy) { if (d (a, args)) return a; Accessible ret = a.FindDescendantDepthFirst (d, args); if (ret != null) return ret; } return null; }
public Accessible FindDescendant(FindPredicate d, params object [] args) { return FindDescendantDepthFirst (d, args); }