01: // Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
02: // Released under the terms of the GNU General Public License version 2 or later.
03: package fitnesse.responders.search;
04:
05: import fitnesse.components.Searcher;
06:
07: public class SearchResponder extends ResultResponder {
08: private Searcher searcher;
09:
10: private String getSearchString() {
11: return (String) request.getInput("searchString");
12: }
13:
14: private String getSearchType() {
15: String searchType = (String) request.getInput("searchType");
16: searchType = searchType.toLowerCase();
17:
18: if (searchType.indexOf("title") != -1)
19: return "Title";
20: else
21: return "Content";
22: }
23:
24: protected String getPageFooterInfo(int hits) throws Exception {
25: return "Found " + hits + " results for your search.";
26: }
27:
28: protected String getTitle() throws Exception {
29: return getSearchType() + " Search Results for '"
30: + getSearchString() + "'";
31: }
32:
33: protected void startSearching() throws Exception {
34: String searchString = getSearchString();
35: if (!searchString.equals("")) {
36: loadSearcher(searchString);
37: String searchType = getSearchType();
38: if ("Title".equals(searchType))
39: searcher.searchTitles(this );
40: else
41: searcher.searchContent(this );
42: }
43: }
44:
45: protected boolean shouldRespondWith404() {
46: return false;
47: }
48:
49: public void setSearcher(Searcher searcher) {
50: this .searcher = searcher;
51: }
52:
53: private void loadSearcher(String searchString) throws Exception {
54: if (searcher == null)
55: searcher = new Searcher(searchString, root);
56: }
57: }
|