Распространение событий в GWT

Если у меня есть виджет, запускающий настраиваемое событие, и этот виджет содержится в иерархии других виджетов, например:

Parent1 contains Parent2 contains Parent3 contains CustomWidget

Затем, чтобы распространить исходное событие на Parent1, мне нужно добавить обработчики событий на всем пути и заставить каждый внутренний узел запускать одно и то же событие, или есть другой способ?

Допустим, у нас есть следующий пользовательский виджет1:

<g:FocusPanel>

 <g:Image/>

</g:FocusPanel>

И он содержится в пользовательском widget2, который прослушивает события, запускаемые widget1:

<g:ScrollPanel>

 <my:CustomWidget1/>

</g:ScrollPanel>

Теперь, если пользовательский widget2 сам содержится в другом виджете (и, в свою очередь, содержится в другом ...), то, чтобы поймать первое событие, отправленное из widget1, мне нужно добавить обработчики соответственно ко всем родительским виджетам, или есть еще один способ?


person Fotinopoulos Giorgos    schedule 20.07.2011    source источник
comment
Пожалуйста, добавьте код - должно быть легче понять проблему.   -  person powerMicha    schedule 20.07.2011


Ответы (1)


GWT предлагает использовать EventBus для обработки таких событий.

См. Google I / O 2009 - Рекомендации по созданию архитектуры приложения GWT

См. Google I / O 2009 - Best Practices for Architecting GWT App (http://www.youtube.com/watch?v=PDuhR18-EdM)

person Stefan    schedule 20.07.2011