如何从现有工作台窗口打开新的工作台窗口(带有自己的WorkbenchWindowAdvisor)?

时间:2011-07-29 05:33:14

标签: java eclipse rcp

我有一个RCP应用程序,我需要在模式“对话框”中显示GEF编辑器。但由于编辑器框架似乎与工作台窗口等的使用紧密相关,我需要找到一个原因来打开一个新的工作台窗口(具有自己的WorkbenchWindowAdvisor等),以便我可以在此工作台窗口中打开我的GEF编辑器。一旦我打开这个workbenchWindow,我就会将WorkbenchWindow的shell的样式设置为应用程序模式。

2 个答案:

答案 0 :(得分:2)

我在一个客户项目中使用以下组件完成了这项工作:

  • 具有方法openNewWindow(String type, ...)的静态类。这是您打开新窗口的方法。 type参数指定所需的窗口类型。
  • 该类通过新的扩展点查找指定的类型,以获取ILocalWorkbenchWindowAdvisor和初始透视ID。
  • 然后将信息保存在全局变量中并调用IWorkbench.openWorkbenchWindow(perspectiveID, ...)
  • ApplicationWorkbenchAdvisor.createWorkbenchWindowAdvisor(...)中,根据保存的ILocalWorkbenchWindowAdvisor创建新顾问程序 - 返回的顾问程序基本上将所有postWindowCreate(...)等委托给ILocalWorkbenchWindowAdvisor中的相同方法。
  • 如果没有保存ILocalWorkbenchWindowAdvisor - 这是打开第一个窗口的情况 - 查找并使用“mainWindow”类型......

它工作得很好,让项目的所有部分根据需要添加新窗口。

答案 1 :(得分:0)

使用命令“org.eclipse.ui.window.newWindow”打开一个新窗口。在WorkbenchWindowAdvisor.preWindowOpen()中,将IWorkbenchWindowConfigurer上的shell样式设置为应用程序模式。您还可以隐藏冷却栏,菜单和状态栏,使其看起来更像是一个对话框而不是一个窗口。