我试图通过从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窗口)?
答案 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();