3

LabelとTextBoxを使用して複合uibinderウィジェットを作成しています。

使用目的は次のとおりです。

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

カスタム@UiConstructorコンストラクターでラベルをキャッチする方法を見つけました。コンストラクターに別のパラメーターを追加することもできますが、GWTタグと同じように、xmlからテキストを取得する方法を知りたい<g:Label>a caption</g:Label>です。

どんな助けでも大歓迎です。

4

3 に答える 3

3

ラベル ウィジェットのソース コードを調べて、可能な実装を見つけました。

重要な点は、複合ウィジェットが 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();
}
...
于 2010-05-17T15:53:11.277 に答える
0

ハンは正しい。HasText は、実装する必要があるものです。私が便利だと思ったことの 1 つは、Google ウィジェットが自分のやりたいことを実行してくれることがわかっている場合に、ソースをブラウズすることです。例えば

http://www.google.com/codesearch/p?hl=en#A1edwVHBClQ/user/src/com/google/gwt/user/client/ui/Label.java

于 2010-05-18T03:10:50.007 に答える
0

テキストをウィジェットの別のパラメーターに入れて、@UiConstructorそのパラメーターを取得するだけです。あれは:

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

次に、 XTextBox.java には次のようになります。

@UiField TextBox textBox;

@UiConstructor XTextBox(String label, String text) {
  initWidget(uiBinder.createAndBindUi(this));
  textBox.setValue(text);
}
于 2010-05-17T15:32:05.080 に答える