在GWT UiBinder中将项添加到自定义小部件

时间:2014-03-21 17:16:57

标签: gwt uibinder

我在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文档中的位置。

1 个答案:

答案 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>