从eclipse viewpart获取内容

时间:2013-11-25 15:47:03

标签: java eclipse eclipse-plugin swt styledtext

我正在使用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());

但这会打印上次打开的视图的文本内容 我怎样才能获得重点内容的样式文本。

1 个答案:

答案 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();
            }
        }