Как я могу добиться этого на Ваадине.
// inside myButton click event
myButton.setEnabled(false);
doMyActionThatTakeSomeTime();
myButton.setEnabled(true);
Внутри события кнопка никогда не отключается, потому что пользовательский интерфейс не обновляется.
Что было бы лучше всего сделать это в Ваадине 11 (или 10)?
- принудительно обновить вид? (как?)
- поместить мое действие в поток? (как ?)
Редактировать РЕШЕНИЕ - Как заставить его работать с потоком
Пока что пример с потоком (рабочий):
@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();