Если сущность реализует интерфейс 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"/>

