我正在使用eclipse ViewPart类在eclipse中开发一个插件。在viewpart内我有styledtext。考虑我有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());
但这会打印上次打开的视图的文本内容 我怎样才能获得重点内容的样式文本。
答案 0 :(得分:2)
您可以尝试按ID检索自己的视图,然后直接从视图中获取所需信息:
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();
}
}