Я хочу сгенерировать динамическую таблицу ячеек из xml
Мой xml содержит N столбцов (с такими подробностями, как - имя столбца, тип столбца, сортируемый, isEditable (Y / N), значения для ячейки и т. Д..,
Проблема в том, как сгенерировать таблицу ячеек в GWT из варианта (динамического) xml, т.е. при создании таблицы ячеек мы не знаем, сколько столбцов присутствует, мы не знаем, какой там тип, isEditable., isSortable и т. д.
Я могу анализировать XML. Теперь я хочу создать динамическую таблицу. Я создал класс BeanInfo, который используется для методов получения и установки. Как я могу создавать динамические методы получения и установки для этих динамических столбцов (атрибут 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 version = "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 и использовали в celltable для отображения / обновления значения