Я создаю приложение RCP. Мне нужно открыть несколько экземпляров одного и того же представления, но с разными данными. Я сделал это, установив вторичный идентификатор для разных экземпляров одного и того же представления. В частности, моя проблема заключается в следующем: пожалуйста, посмотрите
У меня есть графическое представление под названием 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());
Так как же определить, какой экземпляр представления активен в данный момент, и работать с ним?