2016-05-31 7 views
0

現在、特定の基準に一致するすべてのEObjectを検索するビューを作成しています。このビューは、開いているすべてのEMFエディターを検索します。エディタからEMFのルーツを取得するプログラム的な方法はありますか?開いているエディタからすべてのEMFツリーのルートを取得

[編集]私は、emfプラグインから自動的に生成されたツリービューエディタのようなエディタを意味しました。 1つのエディタが開いているとすれば、このモデルツリーからルート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); 
      } 
     } 
    } 
} 
関連する問題