Как получить виджет GWT, который оборачивает данный элемент DOM? - PullRequest
2 голосов
/ 24 февраля 2011

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

Достаточно просто получить элемент, по которому щелкнули (это будет цель события собственного события), но как мне найти соответствующий виджет?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Для него нет стандартной функциональности, афаик. Но вы можете сделать это аналогично тому, как это делается в классе com.google.gwt.user.client.ui.Tree GWT.

В основном это работает там, сначала собирая цепочку Элементов от Элемента вашего корневого Виджета к элементу Виджета, который щелкнул (см. Закрытый метод collectElementChain в классе Tree). С помощью этой цепочки элементов виджет обнаруживается путем перехода от корневого виджета к нажатию на виджет (см. Закрытый метод findItemByChain в классе Tree).

Это работает для дерева, потому что индекс Widget и Element дочерних элементов каждого виджета / элемента совпадают, и потому что он позволяет только определенный виджет, установленный как TreeItem.

0 голосов
/ 26 июля 2013

На самом деле вы можете получить виджет, связанный с основным элементом виджета, используя либо gwtquery , либо метод DOM.getEventListener(element), который возвращает виджет, связанный с элементом.

Вы можете проверить мой ответ в другой ветке для некоторого рабочего кода: GWT - Как получить реально нажатый виджет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...