Если вы хотите, чтобы один метод обрабатывал события нажатия для группы виджетов , то это так же просто, как:
@UiHandler({ "firstWidget", "secondWidget", "thirdWidget", "fourthWidget", andSoOn" })
void universalClickHandler(ClickEvent event) {
// here, you can use event.getSource() to get a reference to the actual widget
// that the event targeted.
}
Если вы хотите использовать делегирование событий через группу элементов , то вам нужно прослушать события щелчка на предке, а затем вы можете использовать event.getNativeEvent().getEventTarget()
, чтобы получить фактический элемент, который был целью клика. Затем вы можете использовать isOrHasChild
для Element
, чтобы узнать, была ли фактическая цель клика в этом элементе (например, firstElement.isOrHasChild(Element.as(event.getNativeEvent().getEventtarget()))
, где firstElement
является @UiField Element
- или любой подкласс или Element
, например как DivElement
)