root / tmp / org.txm.libs.javafx / swt / TXMJFXBrowserEditor.java @ 3109
Historique | Voir | Annoter | Télécharger (10,72 ko)
1 | 3108 | mdecorde | /*******************************************************************************
|
---|---|---|---|
2 | 3108 | mdecorde | * Copyright (c) 2003, 2016 IBM Corporation and others.
|
3 | 3108 | mdecorde | * All rights reserved. This program and the accompanying materials
|
4 | 3108 | mdecorde | * are made available under the terms of the Eclipse Public License v1.0
|
5 | 3108 | mdecorde | * which accompanies this distribution, and is available at
|
6 | 3108 | mdecorde | * http://www.eclipse.org/legal/epl-v10.html
|
7 | 3108 | mdecorde | *
|
8 | 3108 | mdecorde | * Contributors:
|
9 | 3108 | mdecorde | * IBM Corporation - Initial API and implementation
|
10 | 3108 | mdecorde | *
|
11 | 3108 | mdecorde | *
|
12 | 3108 | mdecorde | *******************************************************************************/
|
13 | 3108 | mdecorde | package snippet; |
14 | 3108 | mdecorde | |
15 | 3108 | mdecorde | import java.beans.PropertyChangeListener; |
16 | 3108 | mdecorde | import java.net.MalformedURLException; |
17 | 3108 | mdecorde | import java.net.URL; |
18 | 3108 | mdecorde | |
19 | 3108 | mdecorde | import org.eclipse.core.runtime.Adapters; |
20 | 3108 | mdecorde | import org.eclipse.core.runtime.IPath; |
21 | 3108 | mdecorde | import org.eclipse.core.runtime.IProgressMonitor; |
22 | 3108 | mdecorde | import org.eclipse.jface.action.IAction; |
23 | 3108 | mdecorde | import org.eclipse.jface.resource.ImageDescriptor; |
24 | 3108 | mdecorde | import org.eclipse.osgi.util.NLS; |
25 | 3108 | mdecorde | import org.eclipse.swt.graphics.Image; |
26 | 3108 | mdecorde | import org.eclipse.swt.widgets.Composite; |
27 | 3108 | mdecorde | import org.eclipse.swt.widgets.Display; |
28 | 3108 | mdecorde | import org.eclipse.ui.IActionBars; |
29 | 3108 | mdecorde | import org.eclipse.ui.IEditorDescriptor; |
30 | 3108 | mdecorde | import org.eclipse.ui.IEditorInput; |
31 | 3108 | mdecorde | import org.eclipse.ui.IEditorPart; |
32 | 3108 | mdecorde | import org.eclipse.ui.IEditorReference; |
33 | 3108 | mdecorde | import org.eclipse.ui.IEditorRegistry; |
34 | 3108 | mdecorde | import org.eclipse.ui.IEditorSite; |
35 | 3108 | mdecorde | import org.eclipse.ui.IPathEditorInput; |
36 | 3108 | mdecorde | import org.eclipse.ui.IWorkbenchPage; |
37 | 3108 | mdecorde | import org.eclipse.ui.IWorkbenchWindow; |
38 | 3108 | mdecorde | import org.eclipse.ui.PartInitException; |
39 | 3108 | mdecorde | import org.eclipse.ui.PlatformUI; |
40 | 3108 | mdecorde | import org.eclipse.ui.browser.IWorkbenchBrowserSupport; |
41 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.BrowserViewer; |
42 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.IBrowserViewerContainer; |
43 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.ImageResource; |
44 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.TextAction; |
45 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.Trace; |
46 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.WebBrowserEditorInput; |
47 | 3108 | mdecorde | import org.eclipse.ui.internal.browser.WebBrowserUIPlugin; |
48 | 3108 | mdecorde | import org.eclipse.ui.part.EditorPart; |
49 | 3108 | mdecorde | |
50 | 3108 | mdecorde | /**
|
51 | 3108 | mdecorde | * An integrated JFX Web browser (webkit), defined as an editor to make better use of the desktop.
|
52 | 3108 | mdecorde | *
|
53 | 3108 | mdecorde | * TODO the JFXBrowser has to implements lots of event trigger to be fully functionnal
|
54 | 3108 | mdecorde | */
|
55 | 3108 | mdecorde | public class TXMJFXBrowserEditor extends EditorPart implements IBrowserViewerContainer { |
56 | 3108 | mdecorde | |
57 | 3108 | mdecorde | protected static final String PROPERTY_TITLE = "title"; //$NON-NLS-1$ |
58 | 3108 | mdecorde | |
59 | 3108 | mdecorde | public static final String WEB_BROWSER_EDITOR_ID = "org.txm.rcp.editors.TXMJFXBrowserEditor"; //$NON-NLS-1$ |
60 | 3108 | mdecorde | |
61 | 3108 | mdecorde | protected JFXBrowserViewer webBrowser;
|
62 | 3108 | mdecorde | |
63 | 3108 | mdecorde | protected String initialURL; |
64 | 3108 | mdecorde | |
65 | 3108 | mdecorde | protected Image image; |
66 | 3108 | mdecorde | |
67 | 3108 | mdecorde | protected TextAction cutAction; |
68 | 3108 | mdecorde | |
69 | 3108 | mdecorde | protected TextAction copyAction; |
70 | 3108 | mdecorde | |
71 | 3108 | mdecorde | protected TextAction pasteAction; |
72 | 3108 | mdecorde | |
73 | 3108 | mdecorde | private boolean disposed; |
74 | 3108 | mdecorde | |
75 | 3108 | mdecorde | private boolean lockName; |
76 | 3108 | mdecorde | |
77 | 3108 | mdecorde | /**
|
78 | 3108 | mdecorde | * WebBrowserEditor constructor comment.
|
79 | 3108 | mdecorde | */
|
80 | 3108 | mdecorde | public TXMJFXBrowserEditor() {
|
81 | 3108 | mdecorde | super();
|
82 | 3108 | mdecorde | } |
83 | 3108 | mdecorde | |
84 | 3108 | mdecorde | @Override
|
85 | 3108 | mdecorde | public void createPartControl(Composite parent) { |
86 | 3108 | mdecorde | WebBrowserEditorInput input = getWebBrowserEditorInput(); |
87 | 3108 | mdecorde | |
88 | 3108 | mdecorde | int style = 0; |
89 | 3108 | mdecorde | if (input == null || input.isLocationBarLocal()) { |
90 | 3108 | mdecorde | style += BrowserViewer.LOCATION_BAR; |
91 | 3108 | mdecorde | } |
92 | 3108 | mdecorde | if (input == null || input.isToolbarLocal()) { |
93 | 3108 | mdecorde | style += BrowserViewer.BUTTON_BAR; |
94 | 3108 | mdecorde | } |
95 | 3108 | mdecorde | webBrowser = new JFXBrowserViewer(parent, style);
|
96 | 3108 | mdecorde | |
97 | 3108 | mdecorde | webBrowser.setURL(initialURL); |
98 | 3108 | mdecorde | webBrowser.setContainer(this);
|
99 | 3108 | mdecorde | |
100 | 3108 | mdecorde | if (input == null || input.isLocationBarLocal()) { |
101 | 3108 | mdecorde | // cutAction = new TextAction(webBrowser, TextAction.CUT);
|
102 | 3108 | mdecorde | // copyAction = new TextAction(webBrowser, TextAction.COPY);
|
103 | 3108 | mdecorde | // pasteAction = new TextAction(webBrowser, TextAction.PASTE);
|
104 | 3108 | mdecorde | } |
105 | 3108 | mdecorde | |
106 | 3108 | mdecorde | if (!lockName) {
|
107 | 3108 | mdecorde | PropertyChangeListener propertyChangeListener = event -> {
|
108 | 3108 | mdecorde | if (PROPERTY_TITLE.equals(event.getPropertyName())) {
|
109 | 3108 | mdecorde | setPartName((String) event.getNewValue());
|
110 | 3108 | mdecorde | } |
111 | 3108 | mdecorde | }; |
112 | 3108 | mdecorde | webBrowser.addPropertyChangeListener(propertyChangeListener); |
113 | 3108 | mdecorde | } |
114 | 3108 | mdecorde | } |
115 | 3108 | mdecorde | |
116 | 3108 | mdecorde | @Override
|
117 | 3108 | mdecorde | public void setPartName(String partName) { |
118 | 3108 | mdecorde | super.setPartName(partName);
|
119 | 3108 | mdecorde | } |
120 | 3108 | mdecorde | |
121 | 3108 | mdecorde | @Override
|
122 | 3108 | mdecorde | public void setTitleImage(Image titleImage) { |
123 | 3108 | mdecorde | super.setTitleImage(titleImage);
|
124 | 3108 | mdecorde | } |
125 | 3108 | mdecorde | |
126 | 3108 | mdecorde | @Override
|
127 | 3108 | mdecorde | public void dispose() { |
128 | 3108 | mdecorde | if (image != null && !image.isDisposed()) |
129 | 3108 | mdecorde | image.dispose(); |
130 | 3108 | mdecorde | image = null;
|
131 | 3108 | mdecorde | |
132 | 3108 | mdecorde | super.dispose();
|
133 | 3108 | mdecorde | // mark this instance as disposed to avoid stale references
|
134 | 3108 | mdecorde | disposed = true;
|
135 | 3108 | mdecorde | } |
136 | 3108 | mdecorde | |
137 | 3108 | mdecorde | public boolean isDisposed() { |
138 | 3108 | mdecorde | return disposed;
|
139 | 3108 | mdecorde | } |
140 | 3108 | mdecorde | |
141 | 3108 | mdecorde | @Override
|
142 | 3108 | mdecorde | public void doSave(IProgressMonitor monitor) { |
143 | 3108 | mdecorde | // do nothing
|
144 | 3108 | mdecorde | } |
145 | 3108 | mdecorde | |
146 | 3108 | mdecorde | @Override
|
147 | 3108 | mdecorde | public void doSaveAs() { |
148 | 3108 | mdecorde | // do nothing
|
149 | 3108 | mdecorde | } |
150 | 3108 | mdecorde | |
151 | 3108 | mdecorde | /**
|
152 | 3108 | mdecorde | * Returns the copy action.
|
153 | 3108 | mdecorde | *
|
154 | 3108 | mdecorde | * @return org.eclipse.jface.action.IAction
|
155 | 3108 | mdecorde | */
|
156 | 3108 | mdecorde | public IAction getCopyAction() {
|
157 | 3108 | mdecorde | return copyAction;
|
158 | 3108 | mdecorde | } |
159 | 3108 | mdecorde | |
160 | 3108 | mdecorde | /**
|
161 | 3108 | mdecorde | * Returns the cut action.
|
162 | 3108 | mdecorde | *
|
163 | 3108 | mdecorde | * @return org.eclipse.jface.action.IAction
|
164 | 3108 | mdecorde | */
|
165 | 3108 | mdecorde | public IAction getCutAction() {
|
166 | 3108 | mdecorde | return cutAction;
|
167 | 3108 | mdecorde | } |
168 | 3108 | mdecorde | |
169 | 3108 | mdecorde | /**
|
170 | 3108 | mdecorde | * Returns the web editor input, if available. If the input was of
|
171 | 3108 | mdecorde | * another type, <code>null</code> is returned.
|
172 | 3108 | mdecorde | *
|
173 | 3108 | mdecorde | * @return org.eclipse.ui.internal.browser.IWebBrowserEditorInput
|
174 | 3108 | mdecorde | */
|
175 | 3108 | mdecorde | protected WebBrowserEditorInput getWebBrowserEditorInput() {
|
176 | 3108 | mdecorde | IEditorInput input = getEditorInput(); |
177 | 3108 | mdecorde | if (input instanceof WebBrowserEditorInput) |
178 | 3108 | mdecorde | return (WebBrowserEditorInput) input;
|
179 | 3108 | mdecorde | return null; |
180 | 3108 | mdecorde | } |
181 | 3108 | mdecorde | |
182 | 3108 | mdecorde | /**
|
183 | 3108 | mdecorde | * Returns the paste action.
|
184 | 3108 | mdecorde | *
|
185 | 3108 | mdecorde | * @return org.eclipse.jface.action.IAction
|
186 | 3108 | mdecorde | */
|
187 | 3108 | mdecorde | public IAction getPasteAction() {
|
188 | 3108 | mdecorde | return pasteAction;
|
189 | 3108 | mdecorde | } |
190 | 3108 | mdecorde | |
191 | 3108 | mdecorde | @Override
|
192 | 3108 | mdecorde | public void init(IEditorSite site, IEditorInput input) throws PartInitException { |
193 | 3108 | mdecorde | Trace.trace(Trace.FINEST, "Opening browser: " + input); //$NON-NLS-1$ |
194 | 3108 | mdecorde | if (input instanceof IPathEditorInput) { |
195 | 3108 | mdecorde | IPathEditorInput pei = (IPathEditorInput) input; |
196 | 3108 | mdecorde | final IPath path = pei.getPath();
|
197 | 3108 | mdecorde | URL url = null; |
198 | 3108 | mdecorde | try {
|
199 | 3108 | mdecorde | if (path != null) { |
200 | 3108 | mdecorde | setPartName(path.lastSegment()); |
201 | 3108 | mdecorde | url = path.toFile().toURI().toURL(); |
202 | 3108 | mdecorde | } |
203 | 3108 | mdecorde | if (url != null) |
204 | 3108 | mdecorde | initialURL = url.toExternalForm(); |
205 | 3108 | mdecorde | } |
206 | 3108 | mdecorde | catch (Exception e) { |
207 | 3108 | mdecorde | Trace.trace(Trace.SEVERE, "Error getting URL to file"); //$NON-NLS-1$ |
208 | 3108 | mdecorde | } |
209 | 3108 | mdecorde | if (webBrowser != null) { |
210 | 3108 | mdecorde | if (initialURL != null) |
211 | 3108 | mdecorde | webBrowser.setURL(initialURL); |
212 | 3108 | mdecorde | site.getWorkbenchWindow().getActivePage().activate(this);
|
213 | 3108 | mdecorde | } |
214 | 3108 | mdecorde | |
215 | 3108 | mdecorde | if (url != null) |
216 | 3108 | mdecorde | setTitleToolTip(url.getFile()); |
217 | 3108 | mdecorde | |
218 | 3108 | mdecorde | Image oldImage = image;
|
219 | 3108 | mdecorde | ImageDescriptor id = ImageResource.getImageDescriptor(ImageResource.IMG_INTERNAL_BROWSER); |
220 | 3108 | mdecorde | image = id.createImage(); |
221 | 3108 | mdecorde | |
222 | 3108 | mdecorde | setTitleImage(image); |
223 | 3108 | mdecorde | if (oldImage != null && !oldImage.isDisposed()) |
224 | 3108 | mdecorde | oldImage.dispose(); |
225 | 3108 | mdecorde | // addResourceListener(file);
|
226 | 3108 | mdecorde | } |
227 | 3108 | mdecorde | else if (input instanceof WebBrowserEditorInput) { |
228 | 3108 | mdecorde | WebBrowserEditorInput wbei = (WebBrowserEditorInput) input; |
229 | 3108 | mdecorde | initialURL = null;
|
230 | 3108 | mdecorde | if (wbei.getURL() != null) |
231 | 3108 | mdecorde | initialURL = wbei.getURL().toExternalForm(); |
232 | 3108 | mdecorde | if (webBrowser != null) { |
233 | 3108 | mdecorde | webBrowser.setURL(initialURL); |
234 | 3108 | mdecorde | site.getWorkbenchWindow().getActivePage().activate(this);
|
235 | 3108 | mdecorde | } |
236 | 3108 | mdecorde | |
237 | 3108 | mdecorde | setPartName(wbei.getName()); |
238 | 3108 | mdecorde | setTitleToolTip(wbei.getToolTipText()); |
239 | 3108 | mdecorde | lockName = false;
|
240 | 3108 | mdecorde | |
241 | 3108 | mdecorde | Image oldImage = image;
|
242 | 3108 | mdecorde | ImageDescriptor id = wbei.getImageDescriptor(); |
243 | 3108 | mdecorde | image = id.createImage(); |
244 | 3108 | mdecorde | |
245 | 3108 | mdecorde | setTitleImage(image); |
246 | 3108 | mdecorde | if (oldImage != null && !oldImage.isDisposed()) |
247 | 3108 | mdecorde | oldImage.dispose(); |
248 | 3108 | mdecorde | } |
249 | 3108 | mdecorde | else {
|
250 | 3108 | mdecorde | IPathEditorInput pinput = Adapters.adapt(input, IPathEditorInput.class); |
251 | 3108 | mdecorde | if (pinput != null) { |
252 | 3108 | mdecorde | init(site, pinput); |
253 | 3108 | mdecorde | } |
254 | 3108 | mdecorde | else {
|
255 | 3108 | mdecorde | throw new PartInitException(NLS.bind(org.eclipse.ui.internal.browser.Messages.errorInvalidEditorInput, input.getName())); |
256 | 3108 | mdecorde | } |
257 | 3108 | mdecorde | } |
258 | 3108 | mdecorde | |
259 | 3108 | mdecorde | setSite(site); |
260 | 3108 | mdecorde | setInput(input); |
261 | 3108 | mdecorde | } |
262 | 3108 | mdecorde | |
263 | 3108 | mdecorde | @Override
|
264 | 3108 | mdecorde | public boolean isDirty() { |
265 | 3108 | mdecorde | return false; |
266 | 3108 | mdecorde | } |
267 | 3108 | mdecorde | |
268 | 3108 | mdecorde | @Override
|
269 | 3108 | mdecorde | public boolean isSaveAsAllowed() { |
270 | 3108 | mdecorde | return false; |
271 | 3108 | mdecorde | } |
272 | 3108 | mdecorde | |
273 | 3108 | mdecorde | /**
|
274 | 3108 | mdecorde | * Open the input in the internal Web browser.
|
275 | 3108 | mdecorde | */
|
276 | 3108 | mdecorde | public static void open(WebBrowserEditorInput input) { |
277 | 3108 | mdecorde | IWorkbenchWindow workbenchWindow = WebBrowserUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow(); |
278 | 3108 | mdecorde | IWorkbenchPage page = workbenchWindow.getActivePage(); |
279 | 3108 | mdecorde | |
280 | 3108 | mdecorde | try {
|
281 | 3108 | mdecorde | IEditorReference[] editors = page.getEditorReferences();
|
282 | 3108 | mdecorde | int size = editors.length;
|
283 | 3108 | mdecorde | for (int i = 0; i < size; i++) { |
284 | 3108 | mdecorde | if (WEB_BROWSER_EDITOR_ID.equals(editors[i].getId())) {
|
285 | 3108 | mdecorde | IEditorPart editor = editors[i].getEditor(true);
|
286 | 3108 | mdecorde | if (editor != null && editor instanceof TXMJFXBrowserEditor) { |
287 | 3108 | mdecorde | TXMJFXBrowserEditor webEditor = (TXMJFXBrowserEditor) editor; |
288 | 3108 | mdecorde | WebBrowserEditorInput input2 = webEditor.getWebBrowserEditorInput(); |
289 | 3108 | mdecorde | if (input2 == null || input.canReplaceInput(input2)) { |
290 | 3108 | mdecorde | editor.init(editor.getEditorSite(), input); |
291 | 3108 | mdecorde | return;
|
292 | 3108 | mdecorde | } |
293 | 3108 | mdecorde | } |
294 | 3108 | mdecorde | } |
295 | 3108 | mdecorde | } |
296 | 3108 | mdecorde | |
297 | 3108 | mdecorde | page.openEditor(input, TXMJFXBrowserEditor.WEB_BROWSER_EDITOR_ID); |
298 | 3108 | mdecorde | } |
299 | 3108 | mdecorde | catch (Exception e) { |
300 | 3108 | mdecorde | Trace.trace(Trace.SEVERE, "Error opening Web browser", e); //$NON-NLS-1$ |
301 | 3108 | mdecorde | } |
302 | 3108 | mdecorde | } |
303 | 3108 | mdecorde | |
304 | 3108 | mdecorde | /*
|
305 | 3108 | mdecorde | * Asks this part to take focus within the workbench.
|
306 | 3108 | mdecorde | */
|
307 | 3108 | mdecorde | @Override
|
308 | 3108 | mdecorde | public void setFocus() { |
309 | 3108 | mdecorde | if (webBrowser != null) |
310 | 3108 | mdecorde | webBrowser.setFocus(); |
311 | 3108 | mdecorde | } |
312 | 3108 | mdecorde | |
313 | 3108 | mdecorde | /**
|
314 | 3108 | mdecorde | * Close the editor correctly.
|
315 | 3108 | mdecorde | */
|
316 | 3108 | mdecorde | @Override
|
317 | 3108 | mdecorde | public boolean close() { |
318 | 3108 | mdecorde | final boolean[] result = new boolean[1]; |
319 | 3108 | mdecorde | Display.getDefault() |
320 | 3108 | mdecorde | .asyncExec(() -> result[0] = getEditorSite().getPage().closeEditor(TXMJFXBrowserEditor.this, false)); |
321 | 3108 | mdecorde | return result[0]; |
322 | 3108 | mdecorde | } |
323 | 3108 | mdecorde | |
324 | 3108 | mdecorde | @Override
|
325 | 3108 | mdecorde | public IActionBars getActionBars() {
|
326 | 3108 | mdecorde | return getEditorSite().getActionBars();
|
327 | 3108 | mdecorde | } |
328 | 3108 | mdecorde | |
329 | 3108 | mdecorde | @Override
|
330 | 3108 | mdecorde | public void openInExternalBrowser(String url) { |
331 | 3108 | mdecorde | final IEditorInput input = getEditorInput();
|
332 | 3108 | mdecorde | final String id = getEditorSite().getId(); |
333 | 3108 | mdecorde | Runnable runnable = () -> doOpenExternalEditor(id, input);
|
334 | 3108 | mdecorde | Display display = getSite().getShell().getDisplay(); |
335 | 3108 | mdecorde | close(); |
336 | 3108 | mdecorde | display.asyncExec(runnable); |
337 | 3108 | mdecorde | } |
338 | 3108 | mdecorde | |
339 | 3108 | mdecorde | protected void doOpenExternalEditor(String id, IEditorInput input) { |
340 | 3108 | mdecorde | IEditorRegistry registry = PlatformUI.getWorkbench().getEditorRegistry(); |
341 | 3108 | mdecorde | String name = input.getName();
|
342 | 3108 | mdecorde | IEditorDescriptor[] editors = registry.getEditors(name);
|
343 | 3108 | mdecorde | IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); |
344 | 3108 | mdecorde | |
345 | 3108 | mdecorde | String editorId = null; |
346 | 3108 | mdecorde | for (IEditorDescriptor editor : editors) {
|
347 | 3108 | mdecorde | if (editor.getId().equals(id))
|
348 | 3108 | mdecorde | continue;
|
349 | 3108 | mdecorde | editorId = editor.getId(); |
350 | 3108 | mdecorde | break;
|
351 | 3108 | mdecorde | } |
352 | 3108 | mdecorde | |
353 | 3108 | mdecorde | IEditorDescriptor ddesc = registry.getDefaultEditor(name); |
354 | 3108 | mdecorde | if (ddesc != null && ddesc.getId().equals(id)) { |
355 | 3108 | mdecorde | int dot = name.lastIndexOf('.'); |
356 | 3108 | mdecorde | String ext = name;
|
357 | 3108 | mdecorde | if (dot != -1) |
358 | 3108 | mdecorde | ext = "*." + name.substring(dot + 1); //$NON-NLS-1$ |
359 | 3108 | mdecorde | registry.setDefaultEditor(ext, null);
|
360 | 3108 | mdecorde | } |
361 | 3108 | mdecorde | |
362 | 3108 | mdecorde | if (editorId == null) { |
363 | 3108 | mdecorde | // no editor
|
364 | 3108 | mdecorde | // next check with the OS for an external editor
|
365 | 3108 | mdecorde | if (registry.isSystemExternalEditorAvailable(name))
|
366 | 3108 | mdecorde | editorId = IEditorRegistry.SYSTEM_EXTERNAL_EDITOR_ID; |
367 | 3108 | mdecorde | } |
368 | 3108 | mdecorde | |
369 | 3108 | mdecorde | if (editorId != null) { |
370 | 3108 | mdecorde | try {
|
371 | 3108 | mdecorde | page.openEditor(input, editorId); |
372 | 3108 | mdecorde | return;
|
373 | 3108 | mdecorde | } |
374 | 3108 | mdecorde | catch (PartInitException e) {
|
375 | 3108 | mdecorde | // ignore
|
376 | 3108 | mdecorde | } |
377 | 3108 | mdecorde | } |
378 | 3108 | mdecorde | |
379 | 3108 | mdecorde | // no registered editor - open using browser support
|
380 | 3108 | mdecorde | try {
|
381 | 3108 | mdecorde | URL theURL = new URL(webBrowser.getURL()); |
382 | 3108 | mdecorde | IWorkbenchBrowserSupport support = PlatformUI.getWorkbench().getBrowserSupport(); |
383 | 3108 | mdecorde | support.getExternalBrowser().openURL(theURL); |
384 | 3108 | mdecorde | } |
385 | 3108 | mdecorde | catch (MalformedURLException e) { |
386 | 3108 | mdecorde | // TODO handle this
|
387 | 3108 | mdecorde | } |
388 | 3108 | mdecorde | catch (PartInitException e) {
|
389 | 3108 | mdecorde | // TODO handle this
|
390 | 3108 | mdecorde | } |
391 | 3108 | mdecorde | } |
392 | 3108 | mdecorde | } |