1 11 package org.eclipse.help.ui.internal.search; 12 13 import java.util.ArrayList ; 14 import java.util.Dictionary ; 15 import java.util.StringTokenizer ; 16 17 import org.eclipse.help.internal.search.InfoCenter; 18 import org.eclipse.help.search.*; 19 import org.eclipse.help.ui.ISearchScopeFactory; 20 import org.eclipse.jface.preference.IPreferenceStore; 21 22 25 public class InfoCenterSearchScopeFactory implements ISearchScopeFactory { 26 public static final String P_URL = "url"; public static final String P_SEARCH_SELECTED = "searchSelected"; public static final String P_TOCS = "tocs"; public static final String TOC_SEPARATOR = ";"; 31 34 public ISearchScope createSearchScope(IPreferenceStore store, String engineId, Dictionary parameters) { 35 String url = getProperty(P_URL, store, engineId, parameters); 36 String ssvalue = getProperty(P_SEARCH_SELECTED, store, engineId, parameters); 37 boolean searchSelected = ssvalue!=null && ssvalue.equalsIgnoreCase("true"); String [] tocs=null; 39 if (searchSelected) { 40 String tvalue = getProperty(P_TOCS, store, engineId, parameters); 41 if (tvalue!=null && tvalue.length()>0) { 42 StringTokenizer stok = new StringTokenizer (tvalue, TOC_SEPARATOR); 43 ArrayList list = new ArrayList (); 44 while (stok.hasMoreTokens()) { 45 String toc = stok.nextToken(); 46 list.add(toc); 47 } 48 if (list.size()>0) 49 tocs = (String [])list.toArray(new String [list.size()]); 50 } 51 } 52 return new InfoCenter.Scope(url, searchSelected, tocs); 53 } 54 55 private String getProperty(String key, IPreferenceStore store, String engineId, Dictionary parameters) { 56 String value = store.getString(engineId+"."+key); if (value!=null && value.length()>0) return value; 59 return (String )parameters.get(key); 61 } 62 } 63 | Popular Tags |