5.5.2.1.4. BulkEditor

BulkEditor - компонент, позволяющий менять значения атрибутов сразу нескольких выбранных экземпляров сущностей. Компонент представляет собой кнопку, добавляющуюся к таблице или дереву и при нажатии открывающую редактор сущностей.

gui bulkEdit

XML-имя компонента: bulkEditor

Компонент реализован для блоков Web Client и Desktop Client.

Для использования BulkEditor у таблицы или дерева должен быть задан атрибут multiselect="true".

Экран редактирования сущностей генерируется автоматически на основе заданного представления (содержащего только поля данной сущности, в том числе ссылки), динамических атрибутов данной сущности (если есть) и разрешений пользователя. Системные атрибуты в редакторе также не отображаются.

Атрибуты сущности в редакторе сортируются по алфавиту. По умолчанию они пусты. При коммите экрана заданные на экране непустые значения атрибутов проставляются всем выбранным экземплярам сущности.

Редактор позволяет удалить значение определенного поля в БД у всех выбранных сущностей, установив его в null. Для этого необходимо нажать на кнопку gui_bulkEditorSetNullButton рядом с соответствующим полем. После этого поле становится нередактируемым. Разблокировать поле можно, нажав на кнопку эту же кнопку снова.

gui invoiceBulkEdit

Пример описания компонента bulkEditor для таблицы:

<table id="invoiceTable"
       multiselect="true"
       width="100%">
    <actions>
        <!-- ... -->
    </actions>
    <buttonsPanel>
        <!-- ... -->
        <bulkEditor for="invoiceTable"
                    exclude="customer"/>
    </buttonsPanel>
Атрибуты bulkEditor
  • Атрибут for является обязательным. В нем указывается идентификатор dataGrid, таблицы или дерева, в данном случае - invoiceTable.

  • Атрибут exclude может содержать регулярное выражения для явного исключения определенных полей из списка редактируемых. Например: date|customer

    gui TableBulkEdit
  • Атрибут includeProperties указывает список атрибутов сущности, которые должны отображаться в окне редактора bulkEditor. Если список задан, все прочие атрибуты сущности будут игнорироваться.

    includeProperties не распространяется на динамические атрибуты сущности.

    Чтобы указать атрибуты декларативно, перечислите их через запятую в дескрипторе экрана:

    <bulkEditor for="ordersTable" includeProperties="name, description"/>

    Список атрибутов также может быть программно задан в контроллере экрана:

    bulkEditor.setIncludeProperties(Arrays.asList("name", "description"));
  • Атрибут loadDynamicAttributes управляет отображением динамических атрибутов редактируемой сущности в окне редактора bulkEditor. Значение по умолчанию true.