private ModelItem FindModelItemToFocus(ModelItem itemToFocus) { WorkflowViewService viewService = this.WorkflowViewService; if (viewService == null || itemToFocus == null) { return(itemToFocus); } ModelUtilities.ReverseTraverse(itemToFocus, (ModelItem modelItem) => { if (modelItem == null) { // continue; return(true); } // if the item has Designer, we assume it can get focus. if (CanFocusOnModelItem(modelItem, viewService)) { itemToFocus = modelItem; // break; return(false); } // continue return(true); }); return(itemToFocus); }
private static SearchableEntry CreateSearchableEntryForArgumentOrVariable(ModelItem itemToFocus) { SearchableEntry entry = null; ModelUtilities.ReverseTraverse(itemToFocus, (ModelItem modelItem) => { entry = CreateSearchableEntryNoRecursive(modelItem); return(entry == null); }); return(entry); }
internal static ModelItem ReverseFindFirst(ModelItem start, Predicate <ModelItem> matcher) { Fx.Assert(start != null, "start should not be null"); Fx.Assert(matcher != null, "matcher should not be null"); ModelItem result = null; ModelUtilities.ReverseTraverse(start, (ModelItem current) => { if (matcher(current)) { result = current; return(false); } return(true); }); return(result); }