複数のテキストボックスを持つレイアウトパネルがあるとしましょう。
次に、そのパネルの特定のテキストボックスをその名前で取得します。どうやってやるの?
前もって感謝します。
これを行う1つの方法は、テキストボックスの参照を作成中にhashMapに保持することです。ただし、メモリリークには注意する必要があります。もう1つの方法は、GWtQueryを使用することです。次に、DOM内の任意の要素に名前でアクセスできます。
GWTQueryなしでそれを取得するには、次のようにします。
Element element = Document.get().getElementById("myTextboxID");
TextBox box = new TextBox();
box.wrap(element);
gwtにはcss-selectorの実装がないので、セレクターの実装が非常にうまく機能するgwtquery、別名gqueryを使用します。
他の多くの機能とは別に、任意の要素に関連付けられたウィジェットを返すことができます。
import static com.google.gwt.query.client.GQuery.*;
[...]
// if the textbox is already a widget
TextBox b = $("input[name=first_name]").widget();
//Or it its an element
TextBox b = TextBox.wrap($("input[name=search]").get(0));
b.setValue("Foo");