dataLoadCoordinator

Фасет dataLoadCoordinator предназначен для запуска загрузчиков данных и для декларативной привязки загрузчиков данных к контейнерам данных, визуальным компонентам и событиям жизненного цикла экрана.

Основное использование

Чтобы запустить все загрузчики данных на событии BeforeShowEvent экрана, просто добавьте dataLoadCoordinator с атрибутом auto="true" в XML-дескриптор экрана:

<facets>
    <dataLoadCoordinator auto="true"/>
</facets>

Режимы работы

dataLoadCoordinator можно настроить для работы в автоматическом, ручном или полуавтоматическом режиме.

Автоматический режим

В этом режиме dataLoadCoordinator полагается на имена параметров с определенными префиксами. Префикс обозначает компонент, который предоставляет значение параметра и событие его изменения.

По умолчанию префикс параметра - container_ для контейнеров данных и component_ для визуальных компонентов. Атрибуты componentPrefix и containerPrefix позволяют использовать другие префиксы.

Загрузчик запускается на BeforeShowEvent, если в его тексте запроса нет параметров без распознанных префиксов. Это означает, что если запрос содержит произвольный параметр, например select e from User e where e.department = :department, то загрузчик не будет запущен автоматически при открытии экрана. Необходимо установить значение параметра и вызвать userDl.load() вручную.

Параметры в условиях запроса не препятствуют запуску загрузчика на BeforeShowEvent.

Ручной режим

В этом режиме момент запуска загрузчиков данных определяют вложенные элементы refresh.

Полуавтоматический режим

Если атрибут auto установлен в true, и при этом есть некоторые вручную настроенные триггеры, DataLoadCoordinator автоматически настраивает все загрузчики, не имеющие ручной конфигурации.

Атрибуты

Вы можете просматривать и редактировать атрибуты фасета в Jmix Studio используя панель испектора Jmix UI.

  • auto - определяет рабочий режим DataLoadCoordinator. Значение по умолчанию - false.

  • componentPrefix - определяет префикс для параметров, которые относятся к визуальным компонентам, из которых DataLoadCoordinator будет брать значения параметров в автоматическом режиме. Значение по умолчанию - component_.

  • containerPrefix - определяет префикс для параметров, которые относятся к контейнерам данных, из которых DataLoadCoordinator будет брать значения параметров в автоматическом режиме. Значение по умолчанию - container_.

Элемент refresh

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

Единственный атрибут этого элемента - loader, который определяет id загрузчика.

Элемент refresh может иметь следующие вложенные элементы, определяющие условия срабатывания загрузчика:

  1. onComponentValueChanged - запуск загрузчика при изменении значение визуального компонента. Он имеет следующие атрибуты:

    • component - указывает id визуального компонента.

    • likeClause - если вы используете выражение like в условии запроса, вы можете определить один из трех возможных режимов поиска:

      • NONE - значение по умолчанию.

      • CASE_SENSITIVE - поиск с учетом регистра символов.

      • CASE_INSENSITIVE - поиск без учета регистра символов.

    • param - указывает имя параметра запроса.

  1. onContainerItemChanged - запуск загрузчика, когда меняется текущий элемент в контейнере данных. Он имеет следующие атрибуты:

    • container - указывает id контейнера данных.

    • param - указывает имя параметра запроса.

  1. onViewEvent - запуска загрузчика на событии жизненного цикла экрана. Он имеет следующий атрибут:

    • type - определяет тип события экрана. Возможные значения:

      • Init - для запуска на событии InitEvent.

      • BeforeShow - для запуска на событии BeforeShowEvent.

      • Ready - для запуска на событии ReadyEvent.