xmlから動的セルテーブルを生成したい
私のxmlにはN個の列が含まれています(列名、列タイプ、ソート可能、isEditable(Y / N)、セルの値などの詳細を含む)
問題は、GWT でバリアント (動的) xml からセル テーブルを生成する方法です。つまり、セル テーブルを作成しているときに、存在する列の数がわかりません。そのタイプ、isEditable、isSortable などもわかりません。
xml を解析できます。ここで動的テーブルを生成したいので、ゲッターとセッターに使用される BeanInfo クラスを作成しました。これらの動的列 (Bean の属性) の動的ゲッターとセッターを作成する方法と、Bean に値を設定する方法を教えてください。
擬似コード:
// dynamic column.
final Column<BeanInfo, String> dynamicGwtColumn = new Column<BeanInfo, String>(
new DynamicDataTypeCell()) {
@Override
public String getValue(BeanInfo object) {
return object.getDyncamicCellValue();
}
};
dynamicGwtColumn .setSortable(true);
sortHandler.setComparator(dynamicGwtColumn ,
new Comparator<BeanInfo >() {
public int compare(BeanInfo o1, BeanInfo o2) {
return o1..getDyncamicCellValue().compareTo(o2.getDyncamicCellValue());
}
});
cellTable.addColumn(dynamicGwtColumn , "Record ID");
dynamicGwtColumn
.setFieldUpdater(new FieldUpdater<BeanInfo, String>() {
public void update(int index, BeanInfo object,
String value) {
// Called when the user changes the value.
object.setDyncamicCellValue(value);
dataProvider.refresh();
}
});
私のxmlは次のとおりです。
< ?xml バージョン="1.0" エンコーディング="UTF-8"?>
< データ中和カタログ="リポジトリ">
< MetaData>
< RecordAttribute name="ID" displayname="ID" columnname="CID" datatype="VARCHAR2" sortable="true" accessmode="modify" showmvpd="false" length="255" integerlength="0" fractionallength="0" />
< RecordAttribute name="Name" displayname="Name" columnname="CNAME" datatype="VARCHAR2" sortable="true" accessmode="modify" showmvpd="false" length="255" integerlength="0" fractionallength="0" />
< RecordAttribute name="custom1" displayname="custom1" columnname="CCUSTOM1" datatype="VARCHAR2" sortable="true" accessmode="modify" showmvpd="false" length="256" integerlength="0" fractionallength="0" />
</MetaData>
<Records>
< RecordAttribute name="CID" edited="false">
<Value />
</RecordAttribute>
< RecordAttribute name="CNAME" edited="false">
<Value />
</RecordAttribute>
< RecordAttribute name="CCUSTOM1" edited="false">
<Value />
</RecordAttribute>
</Record><Records>
<Recordid="17" name="17" productkeyid="13012" selected="false" accessmode="modify" isedited="false">
<RecordAttribute name="CID" edited="false">
<Value>17</Value>
<OldValue>17</OldValue>
</RecordAttribute>
<RecordAttribute name="CNAME" edited="false">
<Value>17</Value>
<OldValue>17</OldValue>
</RecordAttribute>
<RecordAttribute name="CCUSTOM1" edited="false">
<Value>17</Value>
<OldValue>17</OldValue>
</RecordAttribute>
</Record>
上記のxmlから、Celltableを生成したいと思います。上記のxmlの例には、列名、データ型などと値が含まれています。
xmlに基づいて動的なゲッターとセッターを生成し、値を表示/更新するためにセルテーブルで使用する方法