从插件以编程方式显示SWT浏览器

时间:2013-05-10 13:53:15

标签: java eclipse browser eclipse-plugin swt

我试图通过从Eclipse插件的代码中调用它来打开Eclipse的内部浏览器(org.eclipse.swt.browser.Browser)。

到目前为止,我实际上可以实例化一个,我可以“打开”一个URL(我可以告诉感谢我设置的监听器的日志)。但没有出现。由于shell用作浏览器的Composite父级,我希望它只会启动。

我找不到关于此特定问题的任何资源,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窗口)?

1 个答案:

答案 0 :(得分:3)

不要将“浏览器”视为具有所有自己的窗口镶边的对象,而应将其视为可包含HTML数据的专用面板或UI区域。上面示例中的问题是您正在将新UI面板插入到现有窗口小部件中(子窗口小部件通过将父窗口作为构造函数的参数来创建自己。)

使用Browser对象在新窗口中打开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();