получить ITextViewer от IEDitorPart (Eclipse) - PullRequest
2 голосов
/ 29 мая 2009

Eclipse RCP вопрос

Я открываю файл с:

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

Я также получаю документ с:

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

Мне нужно добраться до средства просмотра текста этого документа (для создания LinkedModeUI), есть ли способ сделать это?

Ответы [ 2 ]

6 голосов
/ 24 сентября 2011

У меня сработало следующее:

IEditorPart editorPart = getSite().getPage().getActiveEditor();
if (editorPart != null) {
    ITextOperationTarget target =
            (ITextOperationTarget)editorPart.getAdapter(ITextOperationTarget.class);
    if (target instanceof ITextViewer) {
        ITextViewer textViewer = (ITextViewer)target;
        // ...
    } 
}
1 голос
/ 05 июня 2009

1) Один документ может быть открыт несколькими редакторами. Вам нужно будет перебрать все редакторы, чтобы найти редакторы вашего файла. 2) Зритель инкапсулирован в редакторе. Я думаю, что единственный способ расширить класс редактора, чтобы добавить геттер. Или переопределите его, если средство просмотра недоступно для наследников.

...