Lines 60-71
Link Here
|
60 |
public class IDESettings { |
60 |
public class IDESettings { |
61 |
/** Web Browser prefered by user */ |
61 |
/** Web Browser prefered by user */ |
62 |
public static final String PROP_WWWBROWSER = "WWWBrowser"; // NOI18N |
62 |
public static final String PROP_WWWBROWSER = "WWWBrowser"; // NOI18N |
|
|
63 |
public static final String PROP_EXTERNAL_WWWBROWSER = "ExternalWWWBrowser"; // NOI18N |
63 |
|
64 |
|
64 |
static Preferences getPreferences() { |
65 |
static Preferences getPreferences() { |
65 |
return NbPreferences.forModule(IDESettings.class); |
66 |
return NbPreferences.forModule(IDESettings.class); |
66 |
} |
67 |
} |
67 |
|
68 |
|
68 |
/** Getter for preffered web browser. |
69 |
/** Getter for preffered web browser. The browser may be an internal one |
|
|
70 |
* (URLs will be rendered in some TopComponent) or external browser like |
71 |
* Mozilla or Internet Explorer. |
69 |
* |
72 |
* |
70 |
* First time when this function is called Lookup is used |
73 |
* First time when this function is called Lookup is used |
71 |
* to find prefered browser factory in a browser registry. |
74 |
* to find prefered browser factory in a browser registry. |
Lines 74-82
Link Here
|
74 |
* may return null if it is not possible to get the browser |
77 |
* may return null if it is not possible to get the browser |
75 |
*/ |
78 |
*/ |
76 |
public static HtmlBrowser.Factory getWWWBrowser () { |
79 |
public static HtmlBrowser.Factory getWWWBrowser () { |
|
|
80 |
return getBrowser( PROP_WWWBROWSER, false ); |
81 |
} |
82 |
|
83 |
/** Getter for preffered external web browser. |
84 |
* |
85 |
* First time when this function is called Lookup is used |
86 |
* to find prefered browser factory in a browser registry. |
87 |
* |
88 |
* @return prefered external browser, |
89 |
* may return null if it is not possible to get the browser or no external |
90 |
* browser is available. |
91 |
*/ |
92 |
public static HtmlBrowser.Factory getExternalWWWBrowser () { |
93 |
return getBrowser( PROP_EXTERNAL_WWWBROWSER, true ); |
94 |
} |
95 |
|
96 |
/** Setter for preffered browser. |
97 |
* |
98 |
* Actually Node.Handle of node that represent browser in lookup folder is stored. |
99 |
* |
100 |
* @param brow prefered browser capable of providing implementation |
101 |
*/ |
102 |
public static void setWWWBrowser (HtmlBrowser.Factory brow) { |
103 |
setBrowser( PROP_WWWBROWSER, brow ); |
104 |
if( isExternal( brow ) ) { |
105 |
setExternalWWWBrowser(brow); |
106 |
} |
107 |
} |
108 |
|
109 |
/** Setter for preffered external browser. |
110 |
* |
111 |
* Actually Node.Handle of node that represent browser in lookup folder is stored. |
112 |
* |
113 |
* @param brow prefered browser capable of providing implementation |
114 |
*/ |
115 |
public static void setExternalWWWBrowser (HtmlBrowser.Factory brow) { |
116 |
setBrowser( PROP_EXTERNAL_WWWBROWSER, brow ); |
117 |
} |
118 |
|
119 |
private static void setBrowser (String prefId, HtmlBrowser.Factory brow) { |
77 |
try { |
120 |
try { |
78 |
Object obj = getPreferences().get(PROP_WWWBROWSER, null); |
121 |
if (brow == null) { |
|
|
122 |
getPreferences().put(prefId, "");//NOI18N |
123 |
return; |
124 |
} |
79 |
|
125 |
|
|
|
126 |
Lookup.Item<HtmlBrowser.Factory> item = |
127 |
Lookup.getDefault ().lookupItem (new Lookup.Template<HtmlBrowser.Factory> (HtmlBrowser.Factory.class, null, brow)); |
128 |
if (item != null) { |
129 |
getPreferences().put(prefId, item.getId ()); |
130 |
} else { |
131 |
// strange |
132 |
Logger.getLogger (IDESettings.class.getName ()).warning ("IDESettings: Cannot find browser in lookup");// NOI18N |
133 |
getPreferences().put(prefId, "");//NOI18N |
134 |
} |
135 |
} catch (Exception ex) { |
136 |
Exceptions.printStackTrace (ex); |
137 |
} |
138 |
} |
139 |
|
140 |
private static HtmlBrowser.Factory getBrowser( String prefId, boolean mustBeExternal ) { |
141 |
try { |
142 |
Object obj = getPreferences().get(prefId, null); |
143 |
|
80 |
if (obj instanceof String && !"".equals (obj)) { |
144 |
if (obj instanceof String && !"".equals (obj)) { |
81 |
// use new style |
145 |
// use new style |
82 |
Lookup.Item<HtmlBrowser.Factory> item = Lookup.getDefault ().lookupItem (new Lookup.Template<HtmlBrowser.Factory> (HtmlBrowser.Factory.class, (String)obj, null)); |
146 |
Lookup.Item<HtmlBrowser.Factory> item = Lookup.getDefault ().lookupItem (new Lookup.Template<HtmlBrowser.Factory> (HtmlBrowser.Factory.class, (String)obj, null)); |
Lines 101-106
Link Here
|
101 |
try { |
165 |
try { |
102 |
if (Boolean.TRUE.equals (dobjs[i].getPrimaryFile ().getAttribute ("hidden"))) |
166 |
if (Boolean.TRUE.equals (dobjs[i].getPrimaryFile ().getAttribute ("hidden"))) |
103 |
continue; |
167 |
continue; |
|
|
168 |
if (mustBeExternal && Boolean.TRUE.equals (dobjs[i].getPrimaryFile ().getAttribute ("internal")) ) |
169 |
continue; |
104 |
InstanceCookie cookie = (InstanceCookie) dobjs[i].getCookie (InstanceCookie.class); |
170 |
InstanceCookie cookie = (InstanceCookie) dobjs[i].getCookie (InstanceCookie.class); |
105 |
|
171 |
|
106 |
if (cookie == null) |
172 |
if (cookie == null) |
Lines 127-158
Link Here
|
127 |
return null; |
193 |
return null; |
128 |
} |
194 |
} |
129 |
|
195 |
|
130 |
/** Setter for preffered browser. |
196 |
private static boolean isExternal( HtmlBrowser.Factory brow ) { |
131 |
* |
197 |
// check if it is not set to be hidden |
132 |
* Actually Node.Handle of node that represent browser in lookup folder is stored. |
198 |
FileObject fo = FileUtil.getConfigFile ("Services/Browsers"); // NOI18N |
133 |
* |
199 |
|
134 |
* @param brow prefered browser capable of providing implementation |
200 |
DataFolder folder = DataFolder.findFolder (fo); |
135 |
*/ |
201 |
DataObject [] dobjs = folder.getChildren (); |
136 |
public static void setWWWBrowser (HtmlBrowser.Factory brow) { |
202 |
for (int i = 0; i < dobjs.length; i++) { |
|
|
203 |
Object o = null; |
204 |
|
137 |
try { |
205 |
try { |
138 |
if (brow == null) { |
206 |
if (Boolean.TRUE.equals (dobjs[i].getPrimaryFile ().getAttribute ("hidden"))) |
139 |
getPreferences().put(PROP_WWWBROWSER, "");//NOI18N |
207 |
continue; |
140 |
return; |
208 |
if (!Boolean.TRUE.equals (dobjs[i].getPrimaryFile ().getAttribute ("internal")) ) |
141 |
} |
209 |
continue; |
|
|
210 |
InstanceCookie cookie = (InstanceCookie) dobjs[i].getCookie (InstanceCookie.class); |
142 |
|
211 |
|
143 |
Lookup.Item<HtmlBrowser.Factory> item = |
212 |
if (cookie == null) |
144 |
Lookup.getDefault ().lookupItem (new Lookup.Template<HtmlBrowser.Factory> (HtmlBrowser.Factory.class, null, brow)); |
213 |
continue; |
145 |
if (item != null) { |
214 |
o = cookie.instanceCreate (); |
146 |
getPreferences().put(PROP_WWWBROWSER, item.getId ()); |
215 |
if (o != null && o.equals (brow)) { |
147 |
} else { |
216 |
return false; |
148 |
// strange |
|
|
149 |
Logger.getLogger (IDESettings.class.getName ()).warning ("IDESettings: Cannot find browser in lookup");// NOI18N |
150 |
getPreferences().put(PROP_WWWBROWSER, "");//NOI18N |
151 |
} |
217 |
} |
152 |
} catch (Exception ex) { |
|
|
153 |
Exceptions.printStackTrace (ex); |
154 |
} |
218 |
} |
|
|
219 |
// exceptions are thrown if module is uninstalled |
220 |
catch (java.io.IOException ex) { |
221 |
Logger.getLogger (IDESettings.class.getName ()).log (Level.WARNING, null, ex); |
222 |
} catch (ClassNotFoundException ex) { |
223 |
Logger.getLogger (IDESettings.class.getName ()).log (Level.WARNING, null, ex); |
155 |
} |
224 |
} |
|
|
225 |
} |
226 |
return false; |
227 |
} |
156 |
|
228 |
|
157 |
/** Used in layer xml to register FactoryEditor. */ |
229 |
/** Used in layer xml to register FactoryEditor. */ |
158 |
private static org.netbeans.beaninfo.editors.HtmlBrowser.FactoryEditor createHtmlBrowserFactoryEditor() { |
230 |
private static org.netbeans.beaninfo.editors.HtmlBrowser.FactoryEditor createHtmlBrowserFactoryEditor() { |