我已经建立,其中用户可以使用数据库资源的TableViewer打开任何这些资源的编辑一个简单的Eclipse插件。

用户可因此具有编辑器运行的零个向上实例。

是否有可用的得到这些编辑器实例列表的API?

有帮助吗?

解决方案

您可以得到所有打开的编辑器的引用:

PlatformUI.getWorkbench().getActiveWorkbenchWindow()
    .getActivePage().getEditorReferences();

然后检查这些选择引用您的编辑器类型的实例的人。

其他提示

据该API工作台可以有多个窗口,一个窗口可以有几页,而它们不共享编辑的Javadoc。

所以,为了让所有和每一个打开的编辑器,你应该做的东西沿着这些路线(错误检查等除外):

List<IEditorReference> editors = new ArrayList<IEditorReference>();
for (IWorkbenchWindow window : PlatformUI.getWorkbench().getWorkbenchWindows()) {
    for (IWorkbenchPage page : window.getPages()) {
        for (IEditorReference editor : page.getEditorReferences()) {
            editors.add(editor);
        }
    }
}

注意在这样的枚举不尊重的标签顺序

下面是编辑的枚举的示例:

IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
IWorkbenchPage page = window.getActivePage();
IEditorPart actEditor = page.getActiveEditor();
IEditorReference[] editors = page.getEditorReferences();
for (int i=0; i<editors.length-1; i++) {
  if (editors[i].getEditor(true) == actEditor) {
    page.activate(editors[i+1].getEditor(true));
    return null;
  }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top