5.1. ProcActionsFrame
ProcActionsFrame
- фрейм для работы с процессными действиями. После инициализации во фрейме автоматически отобразятся:
-
кнопка запуска процесса, если процесс не запущен;
-
кнопки, соответствующие выходам из задачи, если процесс запущен и текущий пользователь имеет активную задачу;
-
кнопка отмены процесса;
-
информация о задаче (имя и дата создания).
Каждому из действий возможно задать предикат, вычисляемый перед выполнением этого действия, что позволяет сделать проверку возможности выполнения действия в настоящее время (например, выполнить коммит экрана и в случае неудачи не выполнять процессное действие). Также можно задать слушатель, который будет выполнен после завершения действия (например, закрыть экран редактирования сущности и отобразить сообщение пользователю).
ProcActionsFrame
должен быть связан с экземпляром ProcInstance
. Связывание происходит во время инициализации фрейма.
Пример инициализации фрейма:
procActionsFrame.initializer()
.setBeforeStartProcessPredicate(this::commit)
.setAfterStartProcessListener(showNotification(getMessage("processStarted"), NotificationType.HUMANIZED))
.init(PROCESS_CODE, entity);
-
Метод
initializer()
возвращает объект, используемый для инициализации фрейма. -
Метод
setBeforeStartProcessPredicate
устанавливает предикат, который будет вычислен перед выполнением запуска процесса. Если предикат вернетfalse
, запуск процесса будет прерван. -
Метод
setAfterStartProcessListener
задает слушатель, который будет вызван после завершения действия запуска процесса. -
Самое главное - метод
init
принимает два параметра: код процесса и экземпляр сущности. При вызове этого метода происходит поиск объектаProcInstance
, связанного с указанным экземпляром сущности и ссылающимся наProcDefinition
с указанным кодом. ЕслиProcInstance
существует, фрейм связывается с ним, если нет, то создается новый объектProcInstance
.
Полный список методов, которые можно использовать для работы с фреймом:
- Жизненный цикл процесса
-
-
initializer()
- возвращает экземпляр инициализатора фрейма.
-
init()
- пробует найти экземпляр процесса по переданному коду и ссылке на сущность. Если существующий процесс не найден, создаётся новый. Затем происходит инициализация UI, отображающий действия, доступные для этого процесса и для текущего пользователя.
-
- Конфигурация процесса
-
-
setStartProcessEnabled()
- устанавливает разрешение или запрет на запуск процесса.
-
setCancelProcessEnabled()
- устанавливает разрешение или запрет на отмену процесса.
-
setCompleteTaskEnabled()
- устанавливает разрешение или запрет на завершение задачи.
-
setClaimTaskEnabled()
- устанавливает разрешение или запрет на выбор задачи самим пользователем.
-
setTaskInfoEnabled()
- управляет видимостью контейнера, отображающего локализованное имя задачи и дату её начала.
-
setButtonWidth()
- устанавливает ширину кнопок управления процессом. По умолчанию кнопки имеют ширину 150 px.
-
- Предикаты
-
-
setBeforeStartProcessPredicate()
- устанавливает предикат, который должен быть вычислен перед запуском процесса. Если предикат вернётfalse
, запуск процесса будет прерван.
-
setBeforeCompleteTaskPredicate()
- устанавливает предикат, который должен быть вычислен перед завершением задачи. Если предикат вернётfalse
, завершение задачи будет прервано.
-
setBeforeClaimTaskPredicate()
- устанавливает предикат, который должен быть вычислен перед назначением задачи на пользователя. Если предикат вернётfalse
, назначение задачи будет прервано.
-
setBeforeCancelProcessPredicate()
- устанавливает предикат, который должен быть вычислен перед отменой задачи. Если предикат вернётfalse
, задача не будет отменена.
-
- Слушатели процесса и задач
-
-
setAfterStartProcessListener()
- задаёт слушатель, который будет вызван после запуска процесса.
-
setAfterCompleteTaskListener()
- задаёт слушатель, который будет вызван после завершения задачи.
-
setAfterClaimTaskListener()
- задаёт слушатель, который будет вызван после выбора задачи пользователем.
-
setAfterCancelProcessListener()
- задаёт слушатель, который будет вызван после отмены выполнения процесса.
-
- ProcActionsFrame API
- Initializer API
-
init - setAfterCancelProcessListener - setAfterClaimTaskListener - setAfterCompleteTaskListener - setAfterStartProcessListener - setBeforeCancelProcessPredicate - setBeforeClaimTaskPredicate - setBeforeCompleteTaskPredicate - setBeforeStartProcessPredicate - setButtonWidth - setCancelProcessEnabled - setClaimTaskEnabled - setCompleteTaskEnabled - setStartProcessEnabled - setTaskInfoEnabled