从打开的编辑器中获取所有 EMF 树根

Get all EMF tree roots from open editors

我目前正在创建一个视图,用于搜索符合特定条件的所有 EObject。此视图将在所有打开的 EMF 编辑器中搜索。是否有任何编程方式可以从编辑器中检索 EMF 根?

[编辑] 我的意思是编辑器喜欢从 emf 插件自动生成的树视图编辑器。鉴于打开了一个编辑器,我想从此模型树中获取根 EObject。

我做到了。我将 PartListener2 添加到我的活动页面并搜索活动编辑器。然后我就加了这个方法。

private void addRoot(IEditorReference editorRef) {
    IEditorPart editorPart = editorRef.getEditor(false);
    if (editorPart instanceof IEditingDomainProvider) {
        IEditingDomainProvider editingDomainProvider = (IEditingDomainProvider) editorPart;
        EList<Resource> resourceList = editingDomainProvider.getEditingDomain().getResourceSet().getResources();
        for (Resource resource : resourceList) {
            for (EObject content : resource.getContents()) {
                rootMap.put(content, editorRef);
            }
        }
    }
}