从打开的编辑器中获取所有 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);
}
}
}
}
我目前正在创建一个视图,用于搜索符合特定条件的所有 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);
}
}
}
}