UIBinder和使用事件传播

时间:2010-12-21 00:43:43

标签: gwt uibinder

在gwt中的UIBinder之前,我将元素包装在HTMPanel中,它基本上处理了其子元素的所有事件。因此,我没有将eventlistener附加到多个小部件,而是将其附加到父容器并使用事件冒泡。我可以在UIBinder中执行此操作吗?我知道在yourclass.ui.xml的支持类中,您可以使用UiHandler来处理事件委派,但这是最优的吗?我还在添加多个侦听器,或者是GWT在幕后做了什么,只附加了一个事件处理程序。

1 个答案:

答案 0 :(得分:3)

您可以使用UiBinder添加HTMLPanel并为其附加处理程序:

<g:HTMLPanel ui:field="myHtmlPanel">
  <h1>A Header</h1>
  <p>A Paragraph</p>
</g:HTMLPanel>

然后,在你看来:

@UiField HTMLPanel myHtmlPanel;

...

@UiHandler("myHtmlPanel")
public void onClick(ClickEvent event) {
  // Handle the event.
}