2009-05-28 4 views
2

Eclipse RCP Frageerhalten ITextViewer von IEDitorPart (Eclipse)

Ich öffne Datei mit:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); 
IEditorPart editorPart = IDE.openEditor(page, file); 

ich Dokument auch mit:

IDocument doc = ((ITextEditor)editorPart).getDocumentProvider().getDocument(editorPart.getEditorInput()); 

ich brauche, um Text-Viewer erhalten von Dieses Dokument (zum Erstellen von LinkedModeUI), gibt es eine Möglichkeit, dies zu tun?

Antwort

1

1) Ein Dokument kann mit mehr als einem Editor geöffnet werden. Sie müssen alle Editoren durchlaufen, um nach den Editoren Ihrer Datei zu suchen. 2) Der Viewer ist im Editor gekapselt. Ich denke, die einzige Möglichkeit besteht darin, die Editor-Klasse zu erweitern, um Getter hinzuzufügen. Oder definieren Sie es neu, wenn der Viewer von den Erben nicht erreichbar ist.

6

Die folgende arbeitete für mich:

IEditorPart editorPart = getSite().getPage().getActiveEditor(); 
if (editorPart != null) { 
    ITextOperationTarget target = 
      (ITextOperationTarget)editorPart.getAdapter(ITextOperationTarget.class); 
    if (target instanceof ITextViewer) { 
     ITextViewer textViewer = (ITextViewer)target; 
     // ... 
    } 
}