1 11 package org.eclipse.help.ui.internal.search; 12 13 import java.io.*; 14 import java.net.*; 15 import java.util.*; 16 17 import org.eclipse.help.internal.base.*; 18 import org.eclipse.help.internal.search.*; 19 import org.eclipse.help.internal.util.*; 20 import org.eclipse.ui.*; 21 22 25 public class SearchQueryData { 26 private SearchQuery searchQuery; 27 30 private static int MAX_HITS = 500; 31 34 private int maxHits; 35 38 private boolean bookFiltering; 39 private IWorkingSet[] workingSets; 40 43 private boolean activityFiltering = true; 44 45 48 public SearchQueryData() { 49 searchQuery = new SearchQuery(); 50 maxHits = MAX_HITS; 51 52 String workingSetName = HelpBasePlugin.getDefault() 53 .getPluginPreferences().getString(BaseHelpSystem.WORKING_SET); 54 if (workingSetName == null || workingSetName.length() == 0) { 55 bookFiltering = false; 56 workingSets = new IWorkingSet[0]; 57 } else { 58 IWorkingSet iws = PlatformUI.getWorkbench().getWorkingSetManager() 60 .getWorkingSet(workingSetName); 61 if (iws == null) { 62 bookFiltering = false; 63 workingSets = new IWorkingSet[0]; 64 } else { 65 bookFiltering = true; 66 workingSets = new IWorkingSet[]{iws}; 67 } 68 } 69 } 70 public ISearchQuery getSearchQuery() { 71 return searchQuery; 72 } 73 77 public IWorkingSet[] getSelectedWorkingSets() { 78 if (bookFiltering) { 79 return workingSets; 80 } 81 return null; 82 } 83 86 public String getLocale() { 87 return searchQuery.getLocale(); 88 } 89 92 public boolean isBookFiltering() { 93 return bookFiltering; 94 } 95 101 public void setBookFiltering(boolean enable) { 102 this.bookFiltering = enable; 103 if (enable && workingSets.length > 0) { 104 109 } 110 } 111 112 117 public void setSelectedWorkingSets(IWorkingSet[] workingSets) { 118 this.workingSets = workingSets; 119 } 120 121 127 public void setFieldsSearch(boolean fieldSearch) { 128 searchQuery.setFieldSearch(fieldSearch); 129 } 130 136 public void setMaxHits(int maxHits) { 137 this.maxHits = maxHits; 138 } 139 140 public String toURLQuery() { 141 String q = "searchWord=" + URLCoder.encode(searchQuery.getSearchWord()) + "&maxHits=" + maxHits + "&lang=" + (searchQuery.getLocale()); 145 if (!searchQuery.getFieldNames().isEmpty()) 146 for (Iterator iterator = searchQuery.getFieldNames().iterator(); iterator 147 .hasNext();) { 148 String field = (String ) iterator.next(); 149 try { 150 q += "&field=" + URLEncoder.encode(field, "UTF-8"); } catch (UnsupportedEncodingException uee) { 152 } 153 } 154 if (searchQuery.isFieldSearch()) 155 q += "&fieldSearch=true"; else 157 q += "&fieldSearch=false"; if (bookFiltering) { 159 for (int i = 0; i < workingSets.length; i++) { 160 q += "&scope=" + URLCoder.encode(workingSets[i].getName()); } 162 } 163 return q; 164 } 165 170 public String getSearchWord() { 171 return searchQuery.getSearchWord(); 172 } 173 179 public void setSearchWord(String searchWord) { 180 searchQuery.setSearchWord(searchWord); 181 } 182 187 public int getMaxHits() { 188 return maxHits; 189 } 190 193 public void setActivityFiltering(boolean filter) { 194 activityFiltering = filter; 195 } 196 201 public boolean isActivityFiltering() { 202 return activityFiltering; 203 } 204 205 } 206 | Popular Tags |