Передача объекта в RCP-представление - PullRequest
0 голосов
/ 03 ноября 2011

Я хочу сделать что-то вроде этого псевдокода
MyView v = new MyView(); //yeah, I know i can't do this<br> v.setObject(myObject);<br> v.show();

В моем случае: я использую swtjasperviewer, чтобы показать свои отчеты, и мне нужно создать экземпляр отчета в этом jasperviewer, который оставляет представление открытым, если в отчете нет страниц ...
Я хочу использовать команду, чтобы открыть представление, и передать отчет в представление, таким образом, я могу использовать общее представление.
большое спасибо

1 Ответ

3 голосов
/ 03 ноября 2011

Есть два основных способа сделать это:

  1. Если объект каким-то образом связан с выбором другого представления или редактора, то вы можете использовать write SelectionListener, который получаеттекущий выбор, а затем устанавливает правильный объект, используя следующий метод: getViewSite().getPage().addSelectionListener(mySelectionListener)

  2. В противном случае определите объект, которого может достичь как ваш код, так и представление (например, используя статический атрибут,сервис OSGi или расширение Eclipse), и вы можете использовать этот объект для передачи информации.Ваш источник данных обновляет этот объект, и вы можете определить прослушиватель изменений / обратный вызов, для которого представление может зарегистрировать себя.

...