Uibinder Widgets

时间:2011-04-08 08:48:30

标签: gwt uibinder

是否可以重用在Uibinder上定义的小部件 例如:

<g:SuggestBox ui:field='searchBox' /> 

我的意思是在两个不同的地方使用相同的SuggestBox。 如果有可能我该怎么办电话或者什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

你可以这样做,这是一个例子:

定义要重复使用的小部件:

ExampleLabel.java:

package com.example.client;

import import com.google.gwt.user.client.ui.Label;

public class ExampleLabel extends Composite {
    interface ExampleLabelBinder extends UiBinder<Widget, ExampleLabel>{}
    private static ExampleLabelBinder binder=GWT.create(ExampleLabelBinder.class);
    public ExampleLabel() {
        initWidget(binder.createAndBindUi(this);
    }
}

ExampleLabel.ui.xml

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'>
    <g:Label>Just some text</g:Label>
</ui:UiBinder>

要使用它,你可以这样做:

UseExampleLabel.ui.xml:

<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'
    xmlns:myWidgets='urn:import:com.example.client>
<g:FlowPanel>
    <myWidgets:ExampleLabel></myWidgets:ExampleLabel>
    <myWidgets:ExampleLabel></myWidgets:ExampleLabel>
    <myWidgets:ExampleLabel></myWidgets:ExampleLabel>
</g:FlowPanel>
</ui:UiBinder>

第三行指向您想要重复使用的小部件包。