Документация для @UiHandler

Я начал изучать использование GWT в сочетании с UiBuilder. Я немного озадачен тем, как вы можете использовать директиву @UiHandler (..) для создания простого кода обработки события, как записано в документации GWT :

@UiHandler("button")
void handleClick(ClickEvent e) {
  Window.alert("Hello, AJAX");
}

В этом В этом случае используется метод handleClick . ) директива для создания простого кода обработки события, как записано в GWT ...

Я начал изучать использование GWT в сочетании с UiBuilder. Я немного озадачен тем, как вы можете использовать директиву @UiHandler (..) , чтобы сделать простой код обработки события, записанный в документации GWT :

@UiHandler("button")
void handleClick(ClickEvent e) {
  Window.alert("Hello, AJAX");
}

В этом В этом случае используется метод handleClick . ) директива для создания простого кода обработки события, как записано в GWT ...

Я начал изучать использование GWT в сочетании с UiBuilder. Я немного озадачен тем, как вы можете использовать директиву @UiHandler (..) для создания простого кода обработки события, как записано в документации GWT :

@UiHandler("button")
void handleClick(ClickEvent e) {
  Window.alert("Hello, AJAX");
}

В этом В этом случае используется метод handleClick . Как узнать для каждого виджета GWT, какие методы могут быть созданы с помощью @UiHandler ? Для некоторых вы также можете создать метод doClose () .

Но что вы можете использовать, например, с ListBox для получения события, когда выбран элемент? Где в документации это можно увидеть?

23
задан Mogsdad 17 January 2018 в 02:06
поделиться

1 ответ

Параметр, который вы передаете в аннотацию @UiHandler - это имя соответствующего поля, которое вы хотите присвоить этому *Handler. Итак, в данном случае вы назначаете ClickHandler для Button кнопки (на самом деле, мы просто знаем имя поля).

Что касается того, как именно это работает - это часть магии GWT :) Я предполагаю, что, как и любой другой код, связанный с UiBinder (я думаю, что на Google IO была презентация, где был показан код, который генерирует UiBinder), во время компиляции компилятор определяет, что куда идет. В данном примере: у нас есть кнопка Button, и у нас есть @UiHandler аннотированный метод, который имеет ClickEvent параметр -> это должно означать, что это ClickHandler (обратите внимание, что имя метода не имеет значения). Поэтому давайте добавим код во время компиляции (возможно, в конструкторе), который добавит этот обработчик к кнопке. Если вас интересует более полный ответ - посмотрите источник :D

Но что вы можете использовать, например, с например, ListBox, чтобы получить событие выбора элемента? Где в документации я могу это увидеть?

В GWT API reference. В данном случае вы, вероятно, ищете ListBox.addChangeHandler. Но обычно вы не найдете там код, связанный с @UiHandler - потому что он был бы избыточным - вы всегда строите методы @UiHandler одинаково:

  1. Вы проверяете *Handler, который вы хотите добавить, скажем ChangeHandler
  2. У него есть void onChange(ChangeEvent event) - поэтому вашему методу нужен параметр ChangeEvent и он должен выглядеть так:

    @UiHandler("listBox")
    void whateverName(ChangeEvent event) {
     // ...
    }
    
33
ответ дан 29 November 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: