1 11 package org.eclipse.ui.internal.browser; 12 13 import java.util.ArrayList ; 14 import java.util.Iterator ; 15 import java.util.List ; 16 import java.util.StringTokenizer ; 17 18 import org.eclipse.jface.preference.IPreferenceStore; 19 import org.eclipse.ui.IEditorDescriptor; 20 import org.eclipse.ui.IEditorRegistry; 21 import org.eclipse.ui.PlatformUI; 22 23 26 public class WebBrowserPreference { 27 protected static final String PREF_BROWSER_HISTORY = "webBrowserHistory"; 29 protected static final String PREF_INTERNAL_WEB_BROWSER_HISTORY = "internalWebBrowserHistory"; 31 protected static final String PREF_BROWSER_CHOICE = "browser-choice"; 33 private static final String INTERNAL_BROWSER_ID = "org.eclipse.ui.browser.editor"; 35 private static final String BROWSER_SUPPORT_ID = "org.eclipse.ui.browser.editorSupport"; 37 public static final int INTERNAL = 0; 38 39 public static final int EXTERNAL = 1; 40 41 44 private WebBrowserPreference() { 45 super(); 46 } 47 48 53 protected static IPreferenceStore getPreferenceStore() { 54 return WebBrowserUIPlugin.getInstance().getPreferenceStore(); 55 } 56 57 62 public static List getInternalWebBrowserHistory() { 63 String temp = getPreferenceStore().getString( 64 PREF_INTERNAL_WEB_BROWSER_HISTORY); 65 StringTokenizer st = new StringTokenizer (temp, "|*|"); List l = new ArrayList (); 67 while (st.hasMoreTokens()) { 68 String s = st.nextToken(); 69 l.add(s); 70 } 71 return l; 72 } 73 74 80 public static void setInternalWebBrowserHistory(List list) { 81 StringBuffer sb = new StringBuffer (); 82 if (list != null) { 83 Iterator iterator = list.iterator(); 84 while (iterator.hasNext()) { 85 String s = (String ) iterator.next(); 86 sb.append(s); 87 sb.append("|*|"); } 89 } 90 getPreferenceStore().setValue(PREF_INTERNAL_WEB_BROWSER_HISTORY, 91 sb.toString()); 92 WebBrowserUIPlugin.getInstance().savePluginPreferences(); 93 } 94 95 100 public static boolean isDefaultUseInternalBrowser() { 101 return WebBrowserUtil.canUseInternalWebBrowser(); 102 } 103 104 109 public static boolean isDefaultUseSystemBrowser() { 110 return WebBrowserUtil.canUseSystemBrowser(); 111 } 112 113 118 public static int getBrowserChoice() { 119 int choice = getPreferenceStore().getInt(PREF_BROWSER_CHOICE); 120 if (choice == 2) 121 return EXTERNAL; 122 if (choice == INTERNAL && !WebBrowserUtil.canUseInternalWebBrowser()) 123 return EXTERNAL; 124 return choice; 125 } 126 127 133 public static void setBrowserChoice(int choice) { 134 getPreferenceStore().setValue(PREF_BROWSER_CHOICE, choice); 135 WebBrowserUIPlugin.getInstance().savePluginPreferences(); 136 updateDefaultEditor(choice); 137 } 138 139 private static void updateDefaultEditor(int choice) { 140 IEditorRegistry registry = PlatformUI.getWorkbench() 144 .getEditorRegistry(); 145 String oldId = choice == INTERNAL ? BROWSER_SUPPORT_ID 146 : INTERNAL_BROWSER_ID; 147 String newId = choice == INTERNAL ? INTERNAL_BROWSER_ID 148 : BROWSER_SUPPORT_ID; 149 150 String [][] extensions = { { "a.html", "*.html" }, { "a.htm", "*.htm" }, { "a.shtml", "*.shtml" } }; 153 for (int i = 0; i < extensions.length; i++) { 156 String [] ext = extensions[i]; 157 IEditorDescriptor ddesc = registry.getDefaultEditor(ext[0]); 158 if (ddesc != null && ddesc.getId().equals(oldId)) { 159 registry.setDefaultEditor(ext[1], newId); 160 } 161 } 162 } 163 }
| Popular Tags
|