枚举所有的Eclipse我的编辑?
-
21-08-2019 - |
题
我已经建立,其中用户可以使用数据库资源的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;
}
}
不隶属于 StackOverflow