Получить содержимое из окна затмения
Я разрабатываю плагин в 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();
}
}