Я начал изучать использование 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
для получения события, когда выбран элемент? Где в документации это можно увидеть?
Параметр, который вы передаете в аннотацию @UiHandler
- это имя соответствующего поля, которое вы хотите присвоить этому *Handler
. Итак, в данном случае вы назначаете ClickHandler
для Button кнопки
(на самом деле, мы просто знаем имя поля).
Что касается того, как именно это работает - это часть магии GWT :) Я предполагаю, что, как и любой другой код, связанный с UiBinder (я думаю, что на Google IO была презентация, где был показан код, который генерирует UiBinder), во время компиляции компилятор определяет, что куда идет. В данном примере: у нас есть кнопка Button
, и у нас есть @UiHandler
аннотированный метод, который имеет ClickEvent
параметр -> это должно означать, что это ClickHandler
(обратите внимание, что имя метода не имеет значения). Поэтому давайте добавим код во время компиляции (возможно, в конструкторе), который добавит этот обработчик к кнопке. Если вас интересует более полный ответ - посмотрите источник :D
Но что вы можете использовать, например, с например,
ListBox
, чтобы получить событие выбора элемента? Где в документации я могу это увидеть?
В GWT API reference. В данном случае вы, вероятно, ищете ListBox.addChangeHandler. Но обычно вы не найдете там код, связанный с @UiHandler
- потому что он был бы избыточным - вы всегда строите методы @UiHandler
одинаково:
*Handler
, который вы хотите добавить, скажем ChangeHandler
У него есть void onChange(ChangeEvent event)
- поэтому вашему методу нужен параметр ChangeEvent
и он должен выглядеть так:
@UiHandler("listBox")
void whateverName(ChangeEvent event) {
// ...
}