Имеем класс события (расположен в web):
public class SomeEvent extends ApplicationEvent implements UiEvent {
SomeEvent (Object source) {
super(source);
}
}
Экран DocumentEdit
в котором при коммите публикуется событие:
dsContext.addAfterCommitListener((context, result) -> {
AppBeans.get(Events.class).publish(new CifraUiEvent("documentCommitted"));
});
Есть экран DocumentBrowse
(родитель) и в нем вкладками(tabs) вложены экраны DocumentBrowseFrame
.
В DocumentBrowseFrame
так:
@EventListener
public void onUiEvent(SomeEvent event) {
// some action...
}
Далее 2 варианта действий.
Первый, в окне DocumentBrowse
:
- Открыли документ.
- Сохранили.
- SomeEvent улетел (УСПЕШНО).
- SomeEvent успешно перехвачен всем открытыми
DocumentBrowseFrame
.
Второй, в окне DocumentBrowse
, в фрейме DocumentBrowseFrame
:
- Открыли документ.
- Сохранили.
- SomeEvent улетел. (УСПЕШНО)
- SomeEvent НЕ перехвачен, listener вообще не отрабатывает.
Т.е. разница
Что за беда и в чем может быть причина столь, с моей точки зрения, странного поведения?