Exemplo n.º 1
0
        internal SearchResultsVertex PerformSearch(string search_string, PocVertex source_vertex, List <string> extensions_to_search)
        {
            SearchResultsVertex search_result = new SearchResultsVertex(search_string);

            search_result.Results            = new List <SearchResult>();
            search_result.ExtensionsToSearch = extensions_to_search;

            Graph.AddVertex(search_result);
            Graph.AddEdge(new PocEdge(source_vertex, search_result));
            return(search_result);
        }
Exemplo n.º 2
0
        internal void PopulateResults(string search_term, SearchResultsVertex results_vertex, IProgress <int> progress)
        {
            results_vertex.SearchRunning = true;

            BlockingCollection <SearchResult> results = new BlockingCollection <SearchResult>();

            results = SearchDirectory(search_term, results_vertex.ExtensionsToSearch, new DirectoryInfo(root_vertex.FilePath), progress);

            results_vertex.Results       = results.ToList <SearchResult>();
            results_vertex.SearchRunning = false;
        }
Exemplo n.º 3
0
        private Task SearchForString(string selected_text, VertexControl from_vertex_control, List <string> extensions_to_search = null)
        {
            if (selected_text != null && selected_text != "")
            {
                PocVertex from_vertex = (PocVertex)from_vertex_control.Vertex;

                SearchResultsVertex new_search_results_vertex         = graph_provider.PerformSearch(selected_text, from_vertex, extensions_to_search);
                VertexControl       new_search_results_vertex_control = new VertexControl(new_search_results_vertex)
                {
                    DataContext = new_search_results_vertex
                };
                graph_area.AddVertex(new_search_results_vertex, new_search_results_vertex_control);

                PocEdge new_edge = new PocEdge((PocVertex)from_vertex_control.Vertex, new_search_results_vertex);
                graph_area.InsertEdge(new_edge, new EdgeControl(from_vertex_control, new_search_results_vertex_control, new_edge));

                graph_area.RelayoutGraph(true);
                graph_area.UpdateLayout();

                centre_on_me = new_search_results_vertex_control;

                System.Windows.Controls.DataGrid    grid = TreeHelpers.FindVisualChild <System.Windows.Controls.DataGrid>(new_search_results_vertex_control);
                System.Windows.Controls.ProgressBar bar  = TreeHelpers.FindVisualChild <System.Windows.Controls.ProgressBar>(new_search_results_vertex_control);
                if (still_counting)
                {
                    bar.Maximum = 100;
                }
                else
                {
                    bar.Maximum = directory_count;
                }
                var search_progress = new Progress <int>((int some_int) => ReportProgress(bar));

                return(graph_provider.PopulateResultsAsync(selected_text, new_search_results_vertex, search_progress));

                //bar.Visibility = System.Windows.Visibility.Collapsed;
                //grid.Visibility = System.Windows.Visibility.Visible;
            }
            return(new Task(() => { }));
        }
Exemplo n.º 4
0
 internal Task PopulateResultsAsync(string search_string, SearchResultsVertex search_result, IProgress <int> progress)
 {
     search_result.SearchRunning = true;
     return(Task.Factory.StartNew(() => PopulateResults(search_string, search_result, progress)));
 }