UiBinder XML文件中的小部件重复



假设我有一个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 !");
}

最新更新