bra*_*rad 6 gwt event-handling uibinder
我正在编写一个带有以下标记的小部件:
<g:HTMLPanel ui:field="shortcutPanel" styleName="{style.shortcut}">
<g:Image ui:field="shortcutImage"></g:Image>
<span ui:field="shortcutLabel"></span>
</g:HTMLPanel>
Run Code Online (Sandbox Code Playgroud)
所以基本上是一个包装和图像和标签的div.现在,我不想在图像/跨度上添加事件处理程序,而是希望将onClick与HTMLPanel相关联.然而,我的问题是gwt告诉我
shortcutPanel没有关联的addClickHandler方法
所以我假设不同的是HTMLPanel没有实现HasClickHandlers
或沿着那条线.我想知道将点击处理程序附加到诸如HTMLPanel之类的Ui元素的标准方法是什么,甚至更好,是否有这样的GWT Widget本质上是一个div包装器,我可以轻松地将事件附加到@UiHandler注解.
Igo*_*mer 20
您可能正在寻找FocusPanel
-它拥有所有的好东西:HasAllFocusHandlers
,HasAllKeyHandlers
,HasAllMouseHandlers
,HasBlurHandlers
,HasClickHandlers
...命名一些 :)我觉得它是附着单击处理程序到面板的最简单,最好的方式.
我之前没有这样做,但你可以做到以下几点:
MyPanel
扩展HTMLPanel
和实现的自定义类HasClickHandlers
MyPanel.java
public HandlerRegistration addClickHandler(ClickHandler handler) {
return addDomHandler(handler, ClickEvent.getType());
}
Run Code Online (Sandbox Code Playgroud)
HTMLPanel
与MyPanel
您的ui.xml及其相应的Java实现.您可以随时查看实现,HTMLTable
以了解事件传播的工作原理.这是一个Panel
实现HasClickHandlers
.