internal void RecalculateResults(EditingContext context, ModelSearchResults modelSearchResults) { // reset all old IsInSearchResults values foreach (var oldSearchResult in Results) { oldSearchResult.IsInSearchResults = false; } // now recalculate the results based on the new ModelSearchResults Reset(); _targetString = modelSearchResults.TargetString; _elementTextToSearch = modelSearchResults.ElementTextToSearch; var modelToExplorerModelXRef = ModelToExplorerModelXRef.GetModelToBrowserModelXRef(context); if (null != modelToExplorerModelXRef) { // add all the ExplorerEFElements to _results foreach (var result in modelSearchResults.Results) { var resultsExplorerElement = modelToExplorerModelXRef.GetExisting(result); if (resultsExplorerElement != null) { resultsExplorerElement.IsInSearchResults = true; _results.Add(resultsExplorerElement); } } // now sort _results according to the order they appear in the Explorer SortResults(); } }
internal override ModelSearchResults SearchModelByDisplayName(string searchCriteria) { var searchResults = new ModelSearchResults(); searchResults.Action = Resources.SearchResultItemsMatching; searchResults.SearchCriteria = String.Format( CultureInfo.CurrentCulture, Resources.SearchResultSearchCriteria, searchCriteria); var visitor = new SearchVisitor(searchCriteria, SearchOnDisplayName); searchResults.TargetString = searchCriteria; searchResults.ElementTextToSearch = SearchOnDisplayName; if (null != ViewModel.EDMRootNode() && null != ViewModel.EDMRootNode().ConceptualModel && null != ViewModel.EDMRootNode().ConceptualModel.ModelItem) { visitor.Traverse(ViewModel.EDMRootNode().ConceptualModel.ModelItem); } if (null != ViewModel.EDMRootNode() && null != ViewModel.EDMRootNode().StorageModel && null != ViewModel.EDMRootNode().StorageModel.ModelItem) { visitor.Traverse(ViewModel.EDMRootNode().StorageModel.ModelItem); } if (null != ViewModel.EDMRootNode() && null != ViewModel.EDMRootNode().Diagrams && null != ViewModel.EDMRootNode().Diagrams.ModelItem) { visitor.Traverse(ViewModel.EDMRootNode().Diagrams.ModelItem); } searchResults.Results = visitor.SearchResults; return(searchResults); }
internal ExplorerSearchResults ExpandViewModelToDisplaySearchResults(ModelSearchResults modelSearchResults) { // Loop through each Model item in the search results list and // use NavigationHelper to navigate to the search result - this // will automatically expand the tree view as necessary foreach (var result in modelSearchResults.Results) { GetExplorerEFElementForEFObject(ViewModel.EditingContext, result); } // must recalculate results _after_ navigation above, otherwise some ViewModel elements // may not have been loaded var explorerSearchResults = ExplorerSearchResults.GetExplorerSearchResults(ViewModel.EditingContext); explorerSearchResults.RecalculateResults(ViewModel.EditingContext, modelSearchResults); return(explorerSearchResults); }
private void DisplaySearchResults(ModelSearchResults searchResults, bool clearTextSearch) { ResetPreviousSearchResults(clearTextSearch); // Attempt to make sure the the Search Results items are showing var explorerSearchResults = ExpandViewModelAndTreeViewItems(searchResults); var numResultsFound = explorerSearchResults.Count; if (numResultsFound > 0) { // Assure that the root TreeViewItem node is expanded ExplorerTreeRoot.IsExpanded = true; } SetSearchBarText(searchResults.Action, searchResults.SearchCriteria, numResultsFound); SearchIsActive = true; WaitForExpansionThenProcessTreeView(); }
private ExplorerSearchResults ExpandViewModelAndTreeViewItems(ModelSearchResults modelSearchResults) { _searchExpansionInProgress = true; return _viewModelHelper.ExpandViewModelToDisplaySearchResults(modelSearchResults); }
internal ExplorerSearchResults ExpandViewModelToDisplaySearchResults(ModelSearchResults modelSearchResults) { // Loop through each Model item in the search results list and // use NavigationHelper to navigate to the search result - this // will automatically expand the tree view as necessary foreach (var result in modelSearchResults.Results) { GetExplorerEFElementForEFObject(ViewModel.EditingContext, result); } // must recalculate results _after_ navigation above, otherwise some ViewModel elements // may not have been loaded var explorerSearchResults = ExplorerSearchResults.GetExplorerSearchResults(ViewModel.EditingContext); explorerSearchResults.RecalculateResults(ViewModel.EditingContext, modelSearchResults); return explorerSearchResults; }
internal override ModelSearchResults SearchModelByDisplayName(string searchCriteria) { var searchResults = new ModelSearchResults(); searchResults.Action = Resources.SearchResultItemsMatching; searchResults.SearchCriteria = String.Format( CultureInfo.CurrentCulture, Resources.SearchResultSearchCriteria, searchCriteria); var visitor = new SearchVisitor(searchCriteria, SearchOnDisplayName); searchResults.TargetString = searchCriteria; searchResults.ElementTextToSearch = SearchOnDisplayName; if (null != ViewModel.EDMRootNode() && null != ViewModel.EDMRootNode().ConceptualModel && null != ViewModel.EDMRootNode().ConceptualModel.ModelItem) { visitor.Traverse(ViewModel.EDMRootNode().ConceptualModel.ModelItem); } if (null != ViewModel.EDMRootNode() && null != ViewModel.EDMRootNode().StorageModel && null != ViewModel.EDMRootNode().StorageModel.ModelItem) { visitor.Traverse(ViewModel.EDMRootNode().StorageModel.ModelItem); } if (null != ViewModel.EDMRootNode() && null != ViewModel.EDMRootNode().Diagrams && null != ViewModel.EDMRootNode().Diagrams.ModelItem) { visitor.Traverse(ViewModel.EDMRootNode().Diagrams.ModelItem); } searchResults.Results = visitor.SearchResults; return searchResults; }
private ExplorerSearchResults ExpandViewModelAndTreeViewItems(ModelSearchResults modelSearchResults) { _searchExpansionInProgress = true; return(_viewModelHelper.ExpandViewModelToDisplaySearchResults(modelSearchResults)); }