Я разрабатываю приложение на основе RCP. Недавно я перевел его на RAP. Раньше я использовал некоторые нетипизированные события в RCP для передачи некоторых необходимых данных для разных целей. Например, у меня есть кнопка "Получить данные" для получения данных с сервера. У меня есть просмотрщик таблиц для хранения данных, полученных с сервера. Когда пользователь нажимает эту кнопку, я хочу вызвать событие, и в каждой таблице будет прослушиваться это событие. Я сделал следующее:
//Part 1
Button btgetData=new Button(compositeLabels,SWT.PUSH);
btgetData.setText("Get Data");
btgetData.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
//raise event here
Event event =new Event();
event.detail=12345;
getRoot().getShell().notifyListeners(MYEVENTCONST, event);
}
});
//Part 2:
//In each composite that hold TableViewer , listen event
getShell().addListener(MYEVENTCONST, new Listener()
public void handleEvent(Event event) {
if(event.detail==12345)
doProcessing();
});
В RCP каждый TableViewer обычно прослушивает это событие каждый раз, когда пользователь нажимает кнопку «Получить данные». Но это не сработало на RAP, я не знаю, поддерживал ли уже RAP такие нетипизированные события. Функция doProcessing() никогда не вызывается :(.
Я не хочу менять способ передачи данных. Пожалуйста, дайте мне знать, если я могу продолжать работать по-старому. Я очень признателен за любой комментарий.