только вопрос о компоненте таблицы Ваадина. У меня есть таблица, созданная с помощью TableFieldFactory, и я заметил, что если я посчитаю количество раз, которое TableFieldFactory вызывается для таблицы с, например. 8 строк и 4 столбца, я получаю 40 в результате (вместо ожидаемого 8 * 4 = 32).Использует ли Vaadin значение itemId для таблицы Table.addItem() как столбец компонента Vaadin Table UI?
Значит, Vaadin использует скрытый дополнительный столбец при создании таблицы? Включен ли этот столбец itemId для метода Table.addItem()? Во всяком случае вот код, который я использовал для поля завода:
// UI's static field
public static int counter = 1;
// ... UI's init() method
tbl.setTableFieldFactory(new TableFieldFactory() {
@Override
public Field<?> createField(Container container, Object itemId,
Object propertyId, Component uiContext) {
TextField field = new TextField((String) propertyId);
counter++;
// User can only edit the "Numeric field"
if ("Numeric field".equals(propertyId)) {
field.setData(itemId);
// Remeber the field
valueFields.put((Integer) itemId, field);
// Focus if it is the first editable value
if ((Integer) itemId == 0) {
field.focus();
}
}
else {
field.setReadOnly(true);
}
return field;
}
});
// here counter is 40 for a 8x4 table
Интересно, как вы увеличиваете счетчик, когда объявляется окончательным? – kukis
О, да, извините, моя ошибка, это поле int, объявленное как статическое внутри класса UI, которое отображает таблицу, я редактирую сообщение прямо сейчас! – tonix
У вас есть стол с 8x4? Этот код генерирует 32 на выходе http://pastebin.com/kjVD4gyH, какую версию ваадина вы используете? Работает для меня по 7.3 – kukis