如果我有一个触发自定义事件的小部件,并且该小部件包含在其他小部件的层次结构中,例如:
Parent1 contains Parent2 contains Parent3 contains CustomWidget
然后,为了将初始事件传播到Parent1,我是否必须在整个过程中添加事件处理程序并使每个内部节点触发相同的事件,还是有另一种方式?
假设我们有以下自定义widget1:
<g:FocusPanel>
<g:Image/>
</g:FocusPanel>
它包含在自定义widget2中,它侦听widget1触发的事件:
<g:ScrollPanel>
<my:CustomWidget1/>
</g:ScrollPanel>
现在,如果自定义窗口小部件2本身包含在另一个窗口小部件中(并且又包含在另一个窗口小部件中......),那么为了捕获从窗口小部件1调度的第一个事件,我必须分别向所有父窗口小部件添加处理程序,或者还有另一种方式吗?
答案 0 :(得分:3)
GWT建议使用EventBus来处理此类事件。
请参阅Google I/O 2009 - Best Practices for Architecting GWT App
参见Google I / O 2009 - 构建GWT应用程序的最佳实践(http://www.youtube.com/watch?v=PDuhR18-EdM)