Я пытаюсь установить состояние в пользовательском виджете Vaadin с помощью щелчка, созданного пользователем. В соединителе компонентов после создания экземпляра rpc сервера я получаю кнопку GWT и добавляю метод onclick. В этом методе я устанавливаю состояние (getState.text = "new text";), но когда я пытаюсь получить его со стороны сервера, я получаю исходный текст состояния. Метод onStateChange не запускается.
Код в коннекторе:
getWidget().getSaveButton().addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
alert("does it work without jquery?");
getState().text = "text changed from connector";
getWidget().getTextBox().setText(getState().text);
}
});
после нажатия кнопки GWT текстовое поле содержит текст «текст изменен из коннектора»
В состоянии:
public String text = "original state text";
Реализация пользовательского интерфейса для получения состояния:
vaadinButton.addClickListener(new ClickListener() {
@Override
public void buttonClick(ClickEvent event) {
Notification.show(sig.getState().text);
}
});
При нажатии кнопки vaadin после нажатия кнопки GWT в уведомлении по-прежнему отображается «текст исходного состояния».
Мой вопрос: как мне изменить состояние в коннекторе, чтобы он запускал метод onStateChange, и я получал текстовые изменения на стороне сервера?