示例#1
0
        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();
            }
        }
示例#2
0
        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 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();
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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();
        }
示例#6
0
        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();
        }
示例#7
0
 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;
        }
示例#10
0
 private ExplorerSearchResults ExpandViewModelAndTreeViewItems(ModelSearchResults modelSearchResults)
 {
     _searchExpansionInProgress = true;
     return(_viewModelHelper.ExpandViewModelToDisplaySearchResults(modelSearchResults));
 }