У меня есть метод с именем showNotification
, который показывает уведомление
public static void showNotification(UI ui, String notificationMessage) {
Notification notification = new Notification(notificationMessage);
notification.setStyleName("custom-notification");
notification.show(ui.getPage());
}
И у меня есть служба, которая возвращает CompletableFuture
.В моем контроллере я создал метод
@Override
public CompletableFuture<?> startProcessing() {
return processorService.start();
}
И при нажатии кнопки я хочу показать уведомление, если start
был успешным.Мое buttonClick
событие выглядит следующим образом
event -> {
controller.startProcessing()
.thenAccept(aVoid -> UI.getCurrent().access(() -> {
showNotification(getUI(), "Started processing");
})
).handle((aVoid, throwable) -> {
showNotification(getUI(), "Failed to start processing");
return aVoid;
});
}
Проблема заключается в том, что до тех пор, пока я не вызову другое событие - например, нажмите на другую кнопку - оно не будет отображать уведомление.
Что такоепроблема?