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

时间:2016-05-31 09:30:59

标签: eclipse-plugin emf

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

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

1 个答案:

答案 0 :(得分:0)

我设法做到了。我在我的活动页面添加了一个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);
            }
        }
    }
}