RCPアプリケーションを作成しています。同じビューの複数のインスタンスを開く必要がありますが、データは異なります。同じビューのさまざまなインスタンスにセカンダリIDを設定することでそれを行いました。具体的には、私の問題は次のとおりです。ご覧ください
と呼ばれるグラフビューがありますViews.GraphView
。openGraphView
さまざまなグラフを表示するために呼び出されたコマンドから、さまざまなインスタンスを開きました。コマンドは次のとおりです。
page.showView("Views.GraphView", Integer.toString(instanceNum++), IWorkbenchPage.VIEW_ACTIVATE);
TreeLayout
これで、このツールバーで呼び出されるコマンドがあります。このコマンドViews.GraphView
は、グラフのレイアウトを変更することを想定しており、ビューの各インスタンスで動作します。しかし、このためには、ビューのどのインスタンスがアクティブであるかを特定する必要があると思います。コマンドは次のTreeLayout
ようになります。
IViewPart findView = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage(). findView( "Views.GraphView"); //I think in the findView I need to give the id of the view [but how can I put the secondary id?]
GraphView view = (GraphView) findView;
view.changeLayout(); //I wrote this method in the graph view to change the layout
//I just tried to print the secondary id, but it did not print anyting
System.out.println("From treelayout command:- " + view.getViewSite().getSecondaryId());
では、ビューのどのインスタンスが現在アクティブであるかを識別し、それを操作するにはどうすればよいですか?