0

Eclipse ViewPart クラスを使用して、Eclipse でプラグインを開発しています。viewpart 内には、styledtext があります。view_1 と view_2 の 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 に答える