Вопрос задан здесь: https://vaadin.com/forum/thread/18095407/how-to-create-a-grid-without-binder
Однако форум ваадина закрылся, поэтому я хочу продолжить его здесь.
На Vaadin 14 любые рекомендации по лучшему способу реализации сетки с динамически изменяющимся количеством столбцов. Использование индекса столбца (1,2,3...) для меня не лучший выбор. Допустим, у меня есть простой файл Json (только 1 уровень: ключ-значение) для сопоставления с сеткой, и этот Json имеет неизвестный список свойств.
какой подход лучше с точки зрения производительности?:
[Вариант 1]
class Data {
private Map<String, Object> values = new HashMap<>();
public void set(String key, Object val) {
values.put(key, val);
}
public Object get(String key) {
return values.get(key);
}
}
Grid<Data> myGrid = new Grid<>();
[Вариант 2]
public class GridDynamicValueProvider implements ValueProvider<GridDynamicRow, Object> {
private int columnIndex;
public GridDynamicValueProvider(int columnIndex) {
this.columnIndex = columnIndex;
}
@Override
public Object apply(GridDynamicRow dynamicRow) {
return dynamicRow.getValue(columnIndex);
}
}
public class GridDynamicRow {
private List<Object> values = new ArrayList<>();
public void addValue(String value) {
values.add(value);
}
public Object getValue(int columnIndex) {
return values.get(columnIndex);
}
}