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.
Атрибуты
Вы можете просматривать и редактировать атрибуты фасета в Jmix Studio используя панель испектора Jmix UI. |
-
auto
- определяет рабочий режимDataLoadCoordinator
. Значение по умолчанию -false
.
-
componentPrefix
- определяет префикс для параметров, которые относятся к визуальным компонентам, из которыхDataLoadCoordinator
будет брать значения параметров в автоматическом режиме. Значение по умолчанию -component_
.
-
containerPrefix
- определяет префикс для параметров, которые относятся к контейнерам данных, из которыхDataLoadCoordinator
будет брать значения параметров в автоматическом режиме. Значение по умолчанию -container_
.
Элемент refresh
Элемент refresh
позволяет определить условия, при которых должен быть запущен загрузчик данных.
Единственный атрибут этого элемента - loader
, который определяет id
загрузчика.
Элемент refresh
может иметь следующие вложенные элементы, определяющие условия срабатывания загрузчика:
-
onComponentValueChanged
- запуск загрузчика при изменении значение визуального компонента. Он имеет следующие атрибуты:-
component
- указываетid
визуального компонента.
-
likeClause
- если вы используете выражениеlike
в условии запроса, вы можете определить один из трех возможных режимов поиска:-
NONE
- значение по умолчанию. -
CASE_SENSITIVE
- поиск с учетом регистра символов. -
CASE_INSENSITIVE
- поиск без учета регистра символов.
-
-
param
- указывает имя параметра запроса.
-
-
onContainerItemChanged
- запуск загрузчика, когда меняется текущий элемент в контейнере данных. Он имеет следующие атрибуты:-
container
- указываетid
контейнера данных.
-
param
- указывает имя параметра запроса.
-
-
onViewEvent
- запуска загрузчика на событии жизненного цикла экрана. Он имеет следующий атрибут:-
type
- определяет тип события экрана. Возможные значения:-
Init
- для запуска на событииInitEvent
. -
BeforeShow
- для запуска на событииBeforeShowEvent
. -
Ready
- для запуска на событииReadyEvent
.
-
-