示例#1
0
        private void RefreshSearchList()
        {
            if (txtFulltextSearch.Text == "")
            {
                return;
            }

            pnlSearchSelection.BringToFront();
            lbSearchResults.SuspendLayout();
            lbSearchResults.Items.Clear();
            lock (lSearchResults)
            {
                #if !DEMO
                List <string> searchTerms = SearchHelper.BreakSearchTerms(txtFulltextSearch.Text); // Caller is responsible to make sure that search terms have not changed

                if (rRelevent.Checked && searchTerms.Count > 1)
                {
                    // Sort the verses based on score
                    SongSearchHelper.ScoreResults(lSearchResults, searchTerms);
                    SearchRelevancyComparer comp = new SearchRelevancyComparer();
                    lSearchResults.Sort(comp);
                }
                else
                {
                    lSearchResults.Sort(new SongNumberComparer());
                }

                // Add to list
                foreach (SongSearchResult ssr in lSearchResults)
                {
                    lbSearchResults.Items.Add(ssr);
                }
                #endif
            }
            lbSearchResults.ResumeLayout();

            lblTitleSearchResults.Text = Loc.Get("Search results:") + " (" + lSearchResults.Count + ")";
        }
示例#2
0
        private void RefreshSearchList()
        {
            if (txtBibSearch.Text == "")
            {
                return;
            }

            pnlSearchSelection.BringToFront();
            lbSearchVerses.SuspendLayout();
            lbSearchVerses.Items.Clear();
            lock (lResults)
            {
                #if !DEMO
                // Get search terms
                List <string> searchTerms = SearchHelper.BreakSearchTerms(txtBibSearch.Text); // Caller is responsible to make sure that search terms have not changed

                // Sort the results
                BibleVerseComparer bvc = new BibleVerseComparer();
                if (rRelevent.Checked && searchTerms.Count > 1)
                {
                    // Sort the verses based on score
                    BibleSearchHelper.ScoreResults(lResults, searchTerms);
                    SearchRelevancyComparer comp = new SearchRelevancyComparer();
                    lResults.Sort(comp);
                }
                else
                {
                    lResults.Sort(bvc);
                }

                // Double filter the results
                List <BibleSearchResult> lDoubleFilter = new List <BibleSearchResult>();
                foreach (BibleSearchResult r in lResults)
                {
                    foreach (BookData bd in lbBibleBook.Items) // Check book
                    {
                        if (bd.mappingName == r.bibVerse.RefBook)
                        {
                            lDoubleFilter.Add(r);
                            break;
                        }
                    }
                }

                // Add to the list
                foreach (BibleSearchResult r in lDoubleFilter)
                {
                    lbSearchVerses.Items.Add(r);
                }

                // Turn off the tumbler
                pnlInitTumbler.Visible = false;

                // Set visible items based on search result count
                pbNoItems.Visible = llNoResults.Visible = lDoubleFilter.Count == 0;
                lblSort.Visible   = rNoSort.Visible = rRelevent.Visible = lbSearchVerses.Visible = !pbNoItems.Visible;

                lblTitleSearchResults.Text = Loc.Get("Search results:") + " (" + lDoubleFilter.Count + ")";
                #endif
            }
            lbSearchVerses.ResumeLayout();
        }