Если сущность реализует интерфейс com.haulmont.cuba.core.entity.Categorized
,
то для работы с ее динамическими атрибутами
можно использовать компонент com.haulmont.cuba.gui.components.RuntimePropertiesFrame
.
Этот компонент позволяет пользователю выбрать для экземпляра сущности некоторую категорию и указать
значения динамических атрибутов этой категории.
Для использования RuntimePropertiesFrame
в экране редактирования необходимо выполнить следующее:
-
В секции
dsContext
необходимо объявить два источника данных:-
runtimePropsDatasource
- специфический источник, в который будут загружены экземплярыCategoryAttributeValue
. АтрибутmainDs
должен ссылаться на главный источник данных, содержащий редактируемую сущность. -
обычный
collectionDatasource
для загрузки списка категорий данного типа сущности.
Например:
<dsContext> <datasource id="carDs" class="com.company.sample.entity.Car" view="carEdit"/> <runtimePropsDatasource id="runtimePropsDs" mainDs="carDs"/> <collectionDatasource id="categories" class="com.haulmont.cuba.core.entity.Category" view="_local"> <query> select c from sys$Category c where c.entityType='sample$Car' </query> </collectionDatasource> </dsContext>
-
-
После этого можно включить в XML-дескриптор экрана визуальный компонент
runtimeProperties
:<runtimeProperties id="runtimePropsFrame" runtimeDs="runtimePropsDs" categoriesDs="categories"/>