Loading [MathJax]/extensions/tex2jax.js

2014-12-26

GWT:FlexTableを利用して動的にWidgetを張り付けながら管理する

データベースに入っている内容をそのまま表示したり修正したりするには、データをFlexTableに表示するのがベターです。しかし、その際には
  • Widgetsを動的に配置
  • 配置したWidgetsにJavaコード内で管理
という条件を満たす必要があります。その際は、表示しているWidgetを内部でも同様に管理するのがベターです。例えば下記のような方法です。ここでは、配置しているWidgetを行単位でリストに保存しています。

@UiField
FlexTable tbl;
//このListで追加したWidgetを管理する
List<SubjectItem> itemList = new ArrayList<SubjectItem>();
public void addItem(String name){
Label label = new Label(name);
TextBox count = new TextBox();
TextBox point = new TextBox();
SubjectItem item = new SubjectItem();
//内部管理用
item.id=id;
item.label=label;
item.count=count;
item.point=point;
itemList.add(item);
//UIの設定(画面)
tbl.setWidget(itemNum,0,label);
tbl.setWidget(itemNum,1,count);
tbl.setWidget(itemNum,2,point);
itemNum++;
}
public class SubjectItem {
//本当はアクセッサメソッドを用意したほうが良い
public String id;
public Label label;
public TextBox count,point;
}


0 件のコメント:

コメントを投稿