예제 #1
0
        private void OpenFileWithSelectedResult(object sender)
        {
            try
            {
                var result = sender as ListBoxItem;
                if (result != null)
                {
                    string[] searchKeys   = GetKeys(this.searchKey);
                    var      searchResult = result.Content as CodeSearchResult;
                    FileOpener.OpenItem(searchResult);
                    Task.Factory.StartNew(() =>
                    {
                        Thread.Sleep(500);
                        this.Dispatcher.BeginInvoke(HighlightStuffInvoker, searchResult.ProgramElement.FullFilePath, searchResult.
                                                    ProgramElement.DefinitionLineNumber, searchResult.ProgramElement.RawSource, searchKeys);
                    });

                    var matchDescription = QueryMetrics.DescribeQueryProgramElementMatch(searchResult.ProgramElement, searchBox.Text);
                    LogEvents.OpeningCodeSearchResult(searchResult, SearchResults.IndexOf(searchResult) + 1, matchDescription);
                }
            }
            catch (ArgumentException aex)
            {
                LogEvents.UIGenericError(this, aex);
                MessageBox.Show(FileNotFoundPopupMessage, FileNotFoundPopupTitle, MessageBoxButton.OK);
            }
            catch (Exception ee)
            {
                LogEvents.UIGenericError(this, ee);
                MessageBox.Show(FileNotFoundPopupMessage, FileNotFoundPopupTitle, MessageBoxButton.OK);
            }
        }