2016-05-31 17 views
0

Ich mache derzeit eine Ansicht, die nach allen EObjects sucht, die ein bestimmtes Kriterium erfüllen. Diese Ansicht würde in allen geöffneten EMF-Editoren suchen. Gibt es eine programmatische Möglichkeit, die EMF-Wurzeln von den Editoren abzurufen?Erhalten Sie alle EMF-Baum-Wurzeln von offenen Editoren

[Bearbeiten] Ich meine die Editoren wie der automatisch generierte Baumansichtseditor vom emf plugin. Da ein Editor geöffnet ist, möchte ich das Root-EObject von diesem Modellbaum erhalten.

+0

Bitte erläutern Sie Ihre Frage richtig. Haben Ihre Editoren eine Baumansicht und Sie wollen ein Eingabeobjekt von diesem? –

Antwort

0

Ich habe es geschafft. Ich habe meiner aktiven Seite einen PartListener2 hinzugefügt und nach aktiven Editoren gesucht. Dann habe ich diese Methode einfach hinzugefügt.

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); 
      } 
     } 
    } 
}