我目前正在制作一个视图,用于搜索符合特定条件的所有EObject。该视图将在所有打开的EMF编辑器中搜索。是否有任何编程方式从编辑器中检索EMF根?
[编辑]我的意思是编辑器喜欢emf插件中自动生成的树视图编辑器。鉴于一个编辑器是打开的,我想从这个模型树中获取根EObject。
答案 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);
}
}
}
}