В настоящее время я пытаюсь создать DataGrid, который может принимать сущность со списком значений в виде строки. Каждое значение в списке находится в своем собственном столбце в DataGrid. Списки значений сущностей могут иметь разные размеры, поэтому DataGrid будет иметь переменное число столбцов. Я заметил, что когда я пытаюсь создать DataGrid и зацикливать процесс добавления каждого столбца в DataGrid, время, необходимое для добавления столбцов, не увеличивается линейно.
Вот код, который я использовал, чтобы проверить скорость добавления столбцов
DataGrid<String> table = new DataGrid<String>();
table.setPageSize(25);
int NUM_COLUMNS = 40;
for (int i = 0; i < NUM_COLUMNS; i++) {
GWT.log("Adding column "+i);
TextColumn<String> nameColumn = new TextColumn<String>() {
public String getValue(String object) {
return object;
}
};
table.addColumn(nameColumn, "Column " + i);
table.setColumnWidth(nameColumn, 100, Unit.PX);
}
ArrayList<String> data = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
data.add("row "+i);
}
table.setRowCount(data.size(), true);
table.setRowData(0, data);
table.setWidth("100");
Это занимало около 48 секунд, дайте или возьмите 1 секунду, каждый раз, когда я запускаю его. Кажется, что загрузка менее 10 столбцов была довольно быстрой, но с ростом количества столбцов время, затрачиваемое на его загрузку, росло в геометрической прогрессии.
Есть ли другой способ добавить столбцы в DataGrid, который был бы быстрее? Заранее спасибо.