ビューを持つEclipseRCPアプリケーションへのプラグインがあります。RCPアプリケーションでイベントが発生すると、プラグインがインスタンス化され、そのメソッドが呼び出されてプラグインのモデルにデータが入力されますが、[ビューの表示...]メニューに移動しないとビューを表示する方法が見つかりません。 。
これを処理できる作業台シングルトンに何かがあると思いますが、どこにあるのかわかりません。
ビューを持つEclipseRCPアプリケーションへのプラグインがあります。RCPアプリケーションでイベントが発生すると、プラグインがインスタンス化され、そのメソッドが呼び出されてプラグインのモデルにデータが入力されますが、[ビューの表示...]メニューに移動しないとビューを表示する方法が見つかりません。 。
これを処理できる作業台シングルトンに何かがあると思いますが、どこにあるのかわかりません。
あなたはおそらくこれを探しています:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("viewId");
コマンドのハンドラから呼び出された場合
HandlerUtil.getActiveWorkbenchWindow(event).getActivePage().showView(viewId);
私が知っているように、より良いでしょう。
ビューを開いてバックグラウンドにプッシュした後、ビューを前面に表示する必要があることに気付きました。activate メソッドがそのトリックを行います。
PlatformUI.getWorkbench()
.getActiveWorkbenchWindow()
.getActivePage()
.activate(workbenchPartToActivate);
注: workbenchPartToActivate は のインスタンスですIWorkbenchPart
。
e4 では、EPartService がパーツを開く役割を果たします。これは、e3 ViewParts を開くためにも使用できます。IEclipseContext を介して次のクラスをインスタンス化し、openPart-Method を呼び出すと、Eclipse の内部ブラウザー ビューが表示されます。
public class Opener {
@Inject
EPartService partService;
public void openPart() {
MPart part = partService.createPart("org.eclipse.ui.browser.view");
part.setLabel("Browser");
partService.showPart(part, PartState.ACTIVATE);
}
}
ここでは、これが Application.e4xmi とどのように連携するかの例を見つけることができます。