2016-11-27 3 views
0

Из java swing Я использую для отображения модальных диалогов для долговременных задач. Фоновый поток время от времени обновляет метки статуса и индикатор выполнения в диалоговом окне.Возможно ли обновление компонентов модального окна ваадин?

С модными окнами vaadin я ничего не могу изменить из фонового потока, я даже не могу закрыть окно.

Является ли это ожидаемым поведением, или я делаю это неправильно?

Редактировать: На самом деле я не могу обновить окно, даже если оно немодально.

Window window = new Window(); 
// window.setModal(true); 

VerticalLayout layout = new VerticalLayout(); 
Label label = new Label("0"); 
layout.addComponent(label); 
window.setContent(layout); 
window.center(); 

new Thread(() -> { 
    try 
    { 
    Thread.sleep(1000); 
    System.out.println("update 1"); 
    UI.getCurrent().access(() -> label.setValue("1")); 
    Thread.sleep(1000); 
    System.out.println("update 2"); 
    UI.getCurrent().access(() -> label.setValue("2")); 
    Thread.sleep(1000); 
    System.out.println("update 3"); 
    UI.getCurrent().access(() -> label.setValue("3")); 
    Thread.sleep(1000); 
    System.out.println("close"); 
    UI.getCurrent().access(() -> window.close()); 
    } 
    catch(InterruptedException e) 
    { 
    System.out.println(e); 
    } 
}).start(); 

UI.getCurrent().addWindow(window); 

Edit 2: Я просто наткнулся на Vaadin push concept, который, вероятно, что я здесь отсутствует.

ответ

0

Причина в том, что у меня не было vaadin push.

После добавления зависимостей vaadin-push и аннотации @Push к моему основному пользовательскому интерфейсу он начал работать.

Теперь и до next problem ...

Смежные вопросы