3.9.1.2. DynamicAttributesPanel

Если сущность реализует интерфейс com.haulmont.cuba.core.entity.Categorized, то для работы с ее динамическими атрибутами можно использовать компонент DynamicAttributesPanel. Этот компонент позволяет пользователю выбрать для экземпляра сущности некоторую категорию и указать значения динамических атрибутов этой категории.

Для использования DynamicAttributesPanel в экране редактирования необходимо выполнить следующее:

  • Включите атрибут category в представление вашей категоризируемой сущности:

    <view entity="ref_Car" name="car-view" extends="_local">
        <property name="category" view="_minimal"/>
    </view>
  • Объявите контейнер данных в разделе data:

    <data>
       <instance id="carDc"
                 class="com.company.ref.entity.Car"
                 view="car-view">
          <loader dynamicAttributes="true"/>
       </instance>
    </data>

    Чтобы загрузить динамические атрибуты сущности, установите для параметра dynamicAttributes загрузчика данных значение true. По умолчанию динамические атрибуты не загружаются.

  • После этого можно включить в XML-дескриптор экрана визуальный компонент dynamicAttributesPanel:

    <dynamicAttributesPanel dataContainer="carDc"
                            cols="2"
                            rows="2"
                            width="AUTO"/>

    С помощью параметра cols можно указать количество столбцов для отображения динамических атрибутов. Или использовать параметр rows для указания количества строк (в этом случае количество столбцов будет вычисляться автоматически). По умолчанию все атрибуты будут отображаться в одном столбце.

    На вкладке Attributes Location редактора категорий вы можете более гибко настроить отображение динамических атрибутов. В таком случае значения параметров cols и rows будут игнорироваться.