Как мне добиться этого в Vaadin.
// inside myButton click event
myButton.setEnabled(false);
doMyActionThatTakeSomeTime();
myButton.setEnabled(true);
Внутри события кнопка никогда не отключается, потому что пользовательский интерфейс не обновляется.
Что было бы лучше всего сделатьэто в Vaadin 11 (или 10)?
- принудительно обновить представление?(как?)
- поместить мое действие в поток?(как?)
Редактировать РЕШЕНИЕ - Как заставить его работать с Thread
Пока, пример с Thread (работает):
@Push
@Route(value = "secured")
public class MainView extends VerticalLayout
[ ... ]
// inside click event
UI ui = UI.getCurrent();
new Thread(() -> {
ui.access(() -> {
goButton.setEnabled(false);
ui.push();
});
doMyActionThatTakeSomeTime();
ui.access(() -> {
goButton.setEnabled(true);
ui.push();
});
}).start();