0

我正在使用 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 变量说“文本”。

我试过了

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

但这会打印最后打开的视图的文本内容,我怎样才能获得焦点内容的样式文本。

4

1 回答 1

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();
            }
        }
于 2013-11-26T08:01:45.390 回答