package org.eclipse.iee.web.ui.handlers; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.commands.IHandler; import org.eclipse.core.commands.IHandlerListener; import org.eclipse.core.resources.IResource; import org.eclipse.jdt.core.ITypeRoot; import org.eclipse.jdt.ui.JavaUI; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.browser.IWebBrowser; import org.eclipse.ui.browser.IWorkbenchBrowserSupport; import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.ide.ResourceUtil; public class OpenBrowserHandler implements IHandler { @Override public void addHandlerListener(IHandlerListener handlerListener) { } @Override public void dispose() { } @Override public Object execute(ExecutionEvent event) throws ExecutionException { IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event) .getActivePage(); IEditorPart targetEditor = page.getActiveEditor(); ITypeRoot root = JavaUI.getEditorInputTypeRoot(targetEditor.getEditorInput()); if (root == null) { return null; } IResource resource = ResourceUtil.getResource(targetEditor.getEditorInput()); String projectName = resource.getProject().getName(); String clazz = root.findPrimaryType().getFullyQualifiedName(); StringBuilder sb = new StringBuilder(); sb.append("http://localhost:8080/test/doc/"); try { sb.append(URLEncoder.encode(projectName, "utf-8")); sb.append('/'); sb.append(URLEncoder.encode(clazz, "utf-8")); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } IWorkbenchBrowserSupport support = PlatformUI.getWorkbench() .getBrowserSupport(); IWebBrowser browser; try { browser = support.getExternalBrowser(); browser.openURL(new URL(sb.toString())); } catch (PartInitException e) { e.printStackTrace(); } catch (MalformedURLException e) { e.printStackTrace(); } return null; } @Override public boolean isEnabled() { return true; } @Override public boolean isHandled() { return true; } @Override public void removeHandlerListener(IHandlerListener handlerListener) { } }