Я сейчас пишу приложение где в модели у меня два следующих класса:
public class ApplicationAttachment implements Serializable {
private String fileName;
private String fileType;
}
public class ApplicationInfoSet implements Serializable {
private List<ApplicationAttachment> attachmentList = new ArrayList<ApplicationAttachment>();
}
ApplicationInfoSet я соединил с элементами формы через стандартный BeanFieldGroup.
Все работает замечательно.
Проблема:
Я хочу вставить элемент таблицу которая отображает загруженные вложения и привязана к attachmentList.
Эта таблица изначально пуста, и пользователь может добавлять туда вложения (file upload).
Существует ли возможность чтобы я в одном центральном месте добавлял ApplicationAttachment и исходный bean обносвлялся вместе с таблицой?
Конечно можно обойтись Listener-ами но неужели обязательно именно так и нет другово способа как с обычными форм элементами.
Стандартный BeanItemContainer как я пока увидел не привязывает себя к Collection и слушает только изменения значений внутри показываемого класса.
Вообще куда поидее я должен добавлять новые элементы вложения?
- Если добавлять в Property из BeanFieldGroup - тогда контеинер таблицы ничего не знает о новых элементах
- Если напрямую в ArrayList то нет буфферинга, и контеинер также ничего не знает о новых элементах
- контеинер BeanItemContainer привязаный к таблице - так как нету привязки bind к Property перенос значений должен происходить в ручную перед commit
Не могу разобраться как вернее сделать. Буду благодарен за хороший совет: Мне кажется я не первый кто стоит перед этой проблемой - это стандартный binding к 1…n bean который встречается везде.
С уважением
Леонид