Vaadin Wizard аддон событие огонь дважды - PullRequest
1 голос
/ 17 марта 2019

Я использую аддон мастера Vaadin, и у меня проблема со следующим случаем:

Когда пользователь только нажимает вперед / следующий шаг, проблем нет.Однако, если пользователь хочет перейти к предыдущему шагу, я случайно добавляю прослушиватель нажатия кнопки к тому же событию (это мое предположение. Я отладил программу и увидел, что если пользователь переходит на предыдущую страницу, событиесрабатывает дважды)

Я пытался удалить прослушиватель событий перед переходом на следующую страницу, однако я не смог найти способ удалить все прослушиватели событий один раз.Кроме того, я не знаю, где их удалить, поскольку не смог найти функцию, выполняемую до перехода пользователя на следующую страницу в мастере Vaadin.

Я следую этому примеру:

https://github.com/tehapo/WizardsForVaadin/tree/master/wizards-for-vaadin-demo/src/main/java/org/vaadin/teemu/wizards

Есть ли способ удалить все ClickListeners?

Если он существует, куда мне добавить эту функциональность?

Также я использую *Компоненты 1016 * и NativeSelect тоже.

NativeSelect имеет HasValue.ValueChangeListener<String> прослушиватель, и в реализации по умолчанию я не смог найти метод, который мог бы использовать это:

NativeSelect<String> select = new NativeSelect<>("List");

select.addValueChangeListener(new HasValue.ValueChangeListener<String>() {
   // some overwritten valuechange method
}

select.removeValueChangeListener(); // This does not exist

Iустанавливаю приемник щелчка в методе public Component getContent() {}

1 Ответ

3 голосов
/ 18 марта 2019

В Vaadin 8 вам нужно использовать Регистрационный интерфейс для удаления Слушателей.

Когда вы добавите Слушателя, он вернет Регистрацию:

final Registration registration = select.addValueChangeListener(this::doSomething);

Изатем удалить его:

registration.remove();
...