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.
О прочих методах, выполняющих настройку фрейма, можно узнать из javadoc класса.