Отображение динамических атрибутов
При создании нового экрана деталей или списка в проекте с установленным дополнением 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>