2013-05-10 96 views
1

我試圖通過從Eclipse插件的代碼中調用它來打開Eclipse的內部瀏覽器(org.eclipse.swt.browser.Browser)。以編程方式從插件顯示SWT瀏覽器

到目前爲止,我實際上可以實例化一個,我可以「打開」一個URL(我可以告訴感謝來自我設置的監聽器的日誌)。但沒有出現。由於shell被用作瀏覽器的組合父項,我預計它會啓動。

我在這個特定的問題上找不到任何資源,most example snippets不是關於插件。

這裏是我到目前爲止的代碼:

final Shell shell = myActiveWorkbenchWindow.getShell(); 
    final Browser browser = new Browser(shell, SWT.NONE); 
    // set up listener to log the url when loaded 
    browser.setUrl(getLoginUrl()); 

所以,我怎麼可能讓瀏覽器出現(無論是作爲一個彈出窗口或在我的Eclipse窗口)?

回答

3

與其將所有「瀏覽器」視爲具有其自己的窗口鑲邊的對象,不如將其想象爲可包含HTML數據的專用面板或UI區域。上面示例中的問題是,您要將新的UI面板插入到現有的窗口小部件中(通過將父窗口作爲構造函數的參數來創建自己的窗口小部件)。

一個更好的例子來使用瀏覽器對象可能是一個新窗口中打開一個URL:

Shell parentShell = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell(); 
Shell myShell = new Shell (parentShell, SWT.SHELL_TRIM); 
// Very important, generally parents must have a layout set to display children 
myShell.setLayout (new FillLayout()); 
Browser browser = new Browser (myShell, SWT.NONE); 
browser.setUrl (getLoginUrl()); 
myShell.layout(); 
myShell.open(); 
+0

完美,那工作。我想我應該花一些時間來學習更多關於SWT的知識。 – Vince 2013-05-10 14:57:13

相關問題