private void search_btn_Click(object sender, EventArgs e) /*Handle the event when clicking search button * Search main routine*/ { dataGridView.Rows.Clear(); search_query.Visible = true; if (string.IsNullOrEmpty(search_input.Text)) { next_button.Enabled = false; LastButton.Enabled = false; SearchTimeLabel.Visible = false; page_label.Visible = false; search_query.Text = "> Status: Please input a query"; return; } string query = search_input.Text; Stopwatch stopwatch = Stopwatch.StartNew(); if (!Skip_process.Checked) { query = PreProcessQuery(query); } if (string.IsNullOrEmpty(query.Trim())) { next_button.Enabled = false; LastButton.Enabled = false; SearchTimeLabel.Visible = false; page_label.Visible = false; search_query.Text = "> Status: All of input is filtered by pre-processsing"; return; } search_query.Text = S_query_ori + "\n" + query; totalPage = LuceneSearch_app.Search(query, SearchFieldCB.SelectedItem.ToString()); if (totalPage == 0) { currentPage = 0; prev_button.Enabled = false; next_button.Enabled = false; FirstButton.Enabled = false; LastButton.Enabled = false; } else { currentPage = 1; prev_button.Enabled = false; next_button.Enabled = false; LastButton.Enabled = false; FirstButton.Enabled = false; if (totalPage > 1) { next_button.Enabled = true; LastButton.Enabled = true; } ShowResults(currentPage); } stopwatch.Stop(); SearchTimeLabel.Text = string.Format("Found {0} result(s) in about {1}ms", LuceneSearch_app.ScoreDocs.Length, stopwatch.ElapsedMilliseconds); SearchTimeLabel.Visible = true; UpdatePageLabel(); }