在UiBinder XML文件中复制小部件

时间:2013-12-06 13:54:58

标签: gwt uibinder

假设我有工具栏小部件,其中包含我在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>

这样我需要为每个按钮单独分配相同的处理程序。有没有办法在一个地方定义工具栏而无需创建具有特定小部件的新工具栏小部件来显示?

我希望你明白我想要达到的目标。 :)

2 个答案:

答案 0 :(得分:1)

您可以随时为工具栏创建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>

答案 1 :(得分:0)

这不完全是您所要求的,但您可以在@UiHandler参数中设置多个小部件:

@UiHandler( { "b1Top", "b2Bottom" } )
void onButtonClick(ClickEvent event) {
    Window.alert("Click !");
}