我在GWT中创建了一个自定义表单下拉窗口小部件。基本上它是一个列表框,附有一些铃铛和口哨。我想使用UiBinder将项添加到列表框中。如果它只是一个gwt ListBox我可以拥有
<g:ListBox>
<g:item>Test</g:item>
<g:item>Test</g:item>
</g:ListBox>
一切都很好。本着同样的精神,我希望我的自定义小部件也可以添加以下项目:
<my:FormDropdown>
<g:item>Test</g:item>
<g:item>Test</g:item>
</my:FormDropdown>
我不需要它是g:我添加到它的项目,我需要制作一个自定义的东西。我想我需要使用GWT UiBinder工厂方法,但我找不到讨论这个的GWT UiBinder文档中的位置。
答案 0 :(得分:1)
将名称空间声明添加到UIBinder XML顶部的<ui:Binder .... >
标记中,如下所示:
xmlns:my="urn:import:com.yourcompany.yourproject.widgets"
您正在添加一个XML命名空间,指向包含FormDropdown.java
的包。
因此,如果您的FormDropdown
位于:com.yourcompany.yourproject.widgets.FormDropdown.java
然后您的UI Binder XML应该说:
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:my="urn:import:com.yourcompany.yourproject.widgets">
<ui:style>
.important {
font-weight: bold;
}
</ui:style>
<g:HTMLPanel>
<my:FormDropdown>
<g:item>Test</g:item>
<g:item>Test</g:item>
</my:FormDropdown>
</g:HTMLPanel>
</ui:UiBinder>