GWT-uibinder复合材料

GWT-uibinder复合材料,gwt,composite,uibinder,Gwt,Composite,Uibinder,我正在创建一个带有标签和文本框的复合uibinder小部件 预期用途为: <x:XTextBox ui:field="fieldName" label="a caption" > The text to be put in the box. </x:XTextBox> 要放入框中的文本。 我已经找到了如何使用自定义的@UiConstructor构造函数捕获标签,我可能会向构造函数添加另一个参数,但我想知道如何从xml中获取文本,就像GWT标记标题那样 非常感

我正在创建一个带有标签和文本框的复合uibinder小部件

预期用途为:

<x:XTextBox ui:field="fieldName" label="a caption" >
    The text to be put in the box.
</x:XTextBox>

要放入框中的文本。
我已经找到了如何使用自定义的
@UiConstructor
构造函数捕获标签,我可能会向构造函数添加另一个参数,但我想知道如何从xml中获取文本,就像GWT标记
标题那样


非常感谢您的帮助

只需将文本放入小部件的另一个参数中,并让
@UiConstructor
获取该参数。即:

<x:XTextBox ui:field="fieldName" label="a caption" 
  text="The text to be put in the box." />

通过查看标签小部件源代码,我找到了一个可能的实现

关键点是复合小部件必须实现HasText接口。因此,在宣言和正文中:

public class XTextBox extends Composite implements HasText ...
...
@UiField TextBox textBox;
...
public void setText(String text) {
    textBox.setText(text);
}
public String getText() {
    return textBox.getText();
}
...

韩寒是对的;HasText是您需要实现的。我发现有一件事很方便,那就是如果你知道一个谷歌小部件也做了你想做的事情,那就浏览源代码。e、 g

public class XTextBox extends Composite implements HasText ...
...
@UiField TextBox textBox;
...
public void setText(String text) {
    textBox.setText(text);
}
public String getText() {
    return textBox.getText();
}
...