Eclipseの起動時にブラウザを起動させるでは強引にブラウザを起動したが、Eclipseには内部ブラウザってものがあるので、そちらを起動する方法を調べた。
内部ブラウザの起動
ブラウザを操作するクラスを作成してみた。
package fplugin; import java.net.MalformedURLException; import java.net.URL; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.browser.IWebBrowser; import org.eclipse.ui.browser.IWorkbenchBrowserSupport; public class BrowserManager { public static final String URL = "//daipresents.com/"; public static void openBrowser(String url){ IWorkbenchBrowserSupport browserSupport = PlatformUI.getWorkbench().getBrowserSupport(); if (browserSupport.isInternalWebBrowserAvailable()) { try{ IWebBrowser browser = browserSupport.createBrowser( IWorkbenchBrowserSupport.LOCATION_BAR | IWorkbenchBrowserSupport.NAVIGATION_BAR | IWorkbenchBrowserSupport.AS_EDITOR, "id1", "daipresents.com", "こんにちは世界。" ); browser.openURL(new URL(url)); }catch (PartInitException e){ }catch (MalformedURLException e){ } }else{ try{ IWebBrowser browser = browserSupport.getExternalBrowser(); browser.openURL(new URL(url)); }catch (PartInitException e){ }catch (MalformedURLException e){ } } } }
設定が外部ブラウザの場合はそちらを開くようにしている。
あとは、これをActionのinitメソッドから呼び出せばよし。ログインユーザ名はSystem.getPropertyで取得可能。
public void init(IWorkbenchWindow window) { this.window = window; String name = System.getProperty("user.name"); BrowserManager.openBrowser(BrowserManager.URL + "?user=" + name); }
initメソッドはメニューが初期化されたときによばれるので、Eclipseが起動した後によばれるのに近い。それでも失敗する場合があったのでだめかもしんないなー。