Добрый день!
пример проекта:
specifInheritance.zip (93.3 КБ)
Есть две базовые сущности BaseItemsList и BaseItem, связанные композицией - BaseItem items.
Есть соответственно наследники ItemsList и Item.
Мне нужно создать экраны обзора и редактирования для наследников.
В экране обзора для ItemsList я сделал как написано в документации - две коллекции и обработка ItemChangeEvent
А вот в экране редактирования есть проблема. При декларативном описании в таблице с элементами списка ожидаемо сущность BaseItem.
<data>
<instance id="itemsListDc"
class="com.company.specifinheritance.entity.ItemsList">
<fetchPlan extends="_base">
<property name="items" fetchPlan="_base"/>
</fetchPlan>
<loader/>
<collection id="itemsDc" property="items"/>
</instance>
</data>
.....
<groupBox id="itemsBox" caption="msg://com.company.specifinheritance.entity/ItemsList.items">
<table id="itemsTable" dataContainer="itemsDc" width="100%" height="200px">
<actions>
<action id="create" type="create"/>
<action id="edit" type="edit"/>
<action id="remove" type="remove"/>
</actions>
<columns>
<column id="name"/>
</columns>
<buttonsPanel>
<button action="itemsTable.create"/>
<button action="itemsTable.edit"/>
<button action="itemsTable.remove"/>
</buttonsPanel>
</table>
</groupBox>
Можно как-то указать для экрана редактирования ItemsList указать, что в атрибуте items будут сущности Item?
Или придется создать отдельный источник данных с сущностями Item для таблицы и делать всю обработку по изменению списка (создание, редактирование, удаление) в коде контроллера?