Получить содержимое из окна затмения

Я разрабатываю плагин в eclipse с использованием класса eclipse ViewPart. Внутри viewpart у меня есть стиль текста. Представьте, что у меня есть 2 представления view_1 и view_2, и оба имеют styledText_1 и styledText_2. Для какой-то функции поиска мне нужно получить сосредоточенный стиль текста. Я пытался с приведенным ниже кодом, но не удалось.

IWorkbenchPage page = PlatformUI.getWorkbench()
                .getActiveWorkbenchWindow().getActivePage();
IWorkBenchPart activePart = page.getActivePart(); // will give the foucsed view part

Оба представления создаются одним и тем же классом и имеют статическую переменную styledtext, скажем "text".

Я пробовал с

System.out.println(((StyledText)page.getActivePart().getClass().getDeclaredField("text").get(null)).getText());

Но это печатает текстовое содержимое последнего открытого представления, как я могу получить стилизованный текст сфокусированного содержимого.

1 ответ

Вы можете попытаться получить собственное представление по идентификатору, а затем получить необходимую информацию прямо из представления:

IViewPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
            .findView(MyView.ID);
        if (part instanceof MyView) {
            MyView view = (MyView) part;
            StyledText text = view.getStyledText();
        }

Или ввести интерфейс для обоих представлений, в котором был бы метод getStyledText

IViewReference[] references = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getViewReferences();
        for (IViewReference ref : references) {
            IViewPart view = ref.getView(false);
            if (view instanceof IStyledTextProvider) {
                StyledText text = ((IStyledTextProvider) view).getStyledText();
            }
        }
Другие вопросы по тегам