假设我有一个Toolbar小部件,其中包含我在XML定义中传递的按钮。我希望在我正在创建的小部件的顶部和底部都有相同的工具栏。
<g:HTMLPanel>
<ns:Toolbar>
<g:Button ui:field="b1Top">1</g:Button>
</ns:Toolbar>
<p>Lorem ipsum</p>
<ns:Toolbar>
<g:Button ui:field="b2Bottom">1</g:Button>
</ns:Toolbar>
</g:HTMLPanel>
这样,我需要为每个按钮单独分配相同的处理程序。有没有什么方法可以在一个地方定义工具栏,而不创建带有特定小部件的新工具栏小部件?
我希望你能理解我想要实现的目标
您总是可以为Toolbar创建一个Ui-Binder
,并声明按钮的方法和处理程序。然后使用它的多个实例。
工具栏ui-binder
<ns:Toolbar>
<g:Button ui:field="b1Top">1</g:Button>
</ns:Toolbar>
您的ui-binder
<g:HTMLPanel>
<TB:Toolbar />
<p>Lorem ipsum</p>
<TB:Toolbar />
</g:HTMLPanel>
这不是您所要求的,但您可以在@UiHandler参数中设置多个小部件:
@UiHandler( { "b1Top", "b2Bottom" } )
void onButtonClick(ClickEvent event) {
Window.alert("Click !");
}