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