Отображение динамических атрибутов
При создании нового экрана деталей или списка в проекте с установленным дополнением Dynamic Attributes фреймворк предоставляет возможность использования фасета dynamicAttributes в XML-дескрипторах.
Другой метод отображения динамических атрибутов на экранах - использование DynamicAttributesPanel.
Использование фасета dynamicAttributes
Фасет dynamicAttributes позволяет отображать динамические атрибуты в DataGrid или FormLayout, связанных с контейнером данных, содержащим сущности с динамическими атрибутами.
Добавьте фасет dynamicAttributes в раздел facets XML-дескриптора экрана:
<view xmlns="http://jmix.io/schema/flowui/view"
xmlns:dynattr="http://jmix.io/schema/dynattr/flowui"
title="msg://carDetailView.title"
focusComponent="form">
<facets>
<dynattr:dynamicAttributes/>
<dataLoadCoordinator auto="true"/>
</facets>
<!--...-->
</view>
Впоследствии вы можете выбрать этот экран в Category attribute details на вкладке Visibility.
Использование DynamicAttributesPanel
Если сущность реализует интерфейс Categorized, у вас есть возможность использовать компонент DynamicAttributesPanel для отображения динамических атрибутов, связанных с сущностью. Этот компонент упрощает выбор категории для конкретного экземпляра сущности и указание значений для динамических атрибутов в этой категории.
Для интеграции компонента DynamicAttributesPanel в экран деталей выполните следующие шаги:
-
Убедитесь, что атрибут
categoryвключен в фетч-план вашей категоризированной сущности:<data> <instance id="carDc" class="com.company.demo.entity.Car"> <fetchPlan extends="_base"> <property name="category" fetchPlan="_base"/> </fetchPlan> <loader/> </instance> </data> -
Добавьте визуальный компонент
dynamicAttributesPanelна экран:<layout> <formLayout id="form" dataContainer="carDc"> <textField id="numberField" property="number"/> <textField id="modelField" property="model"/> <dynattr:dynamicAttributesPanel dataContainer="carDc" categoryFieldVisible="true"/> </formLayout> <!--...--> </layout>