我想创建一个自定义GWT复合窗口小部件,稍后我可以使用uiBinder在* .ui.xml中使用这种方式(cw是我的自定义窗口小部件包的前缀):
<cw:CustomPanel>
<cw:header><g:Label>test</g:Label></cw:header>
<cw:content><g:Label>test</g:Label></cw:content>
</cw:CustomPanel>
简而言之,我希望框架会以某种方式调用我的自定义窗口小部件上的setHeader
和setContent
方法。
那可能吗?
答案 0 :(得分:2)
这是@UiChild
的用途,请参阅http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/uibinder/client/UiChild.html
如果您想保留方法名称setHeader
和setContent
(而不是addHeader
和addContent
),则必须使用
@UiChild(tagname = "header")
void setHeader(Widget headerWidget) {
...
}
答案 1 :(得分:0)
在窗口小部件的Java类中创建setHeader(String title)
和setContent(String content)
方法。在这些方法中,分别向标题和内容面板添加文本。然后你就可以用这种方式在Ui:Binder中使用这个小部件:
<cw:CustomPanel header="test" content=test" />