Предпочтительный шаблон в Vaadin - применять что-то вроде MVP (Model View Presenter).
Когда вы создаете View, расширяя Layout, вы можете использовать метод getUI () , который возвращает правильный экземпляр UI, когда Layout & View прикреплен. Это означает, что в вашем классе, реализующем View, вы также можете реализовать метод, который обновляет статус, скажем что-то вроде:
updateStatus(boolean visible) {
getUI().access(() -> {
status.setVisible(true);
});
}
Если ваше приложение склонно к тому, чтобы пользователи охотно закрывали браузер, в плохих условиях в сети и т. Д., Вы можете захотеть окружить доступ (..) попыткой перехватить и поймать UIDetachedException, что может произойти, если соединение с браузером внезапно потеряно.
Ваш процесс в фоновом потоке может безопасно вызывать этот метод, то есть myView.updateStatus (true). Обычно это делается через Presenter
presenter.getView().updateStatus(true);