EditAction
- действие с идентификатором edit. Открывает экран редактирования для выбранного экземпляра сущности. Если экран редактирования успешно закоммитил экземпляр
в базу данных, то EditAction
обновляет этот экземпляр в источнике данных таблицы.
В классе EditAction
определены следующие специфические методы:
-
setOpenType()
- позволяет задать режим открытия экрана редактирования сущности. По умолчанию экран открывается в режимеTHIS_TAB
.Так как довольно часто требуется открывать экраны редактирования в другом режиме (как правило,
DIALOG
), при декларативном создании действияedit
в элементеaction
можно указать атрибутopenType
с нужным значением. Это избавляет от необходимости получать ссылку на действие в контроллере и программно устанавливать данное свойство. Например:<table id="usersTable"> <actions> <action id="edit" openType="DIALOG"/>
-
setWindowId()
- позволяет задать идентификатор экрана редактирования сущности. По умолчанию используется экран{имя_сущности}.edit
, напримерsales$Customer.edit
. -
setWindowParams()
- позволяет задать параметры экрана редактирования, передаваемые в его методinit()
. -
afterCommit()
- вызывается действием после того, как экран редактирования успешно закоммитил сущность и был закрыт. Данный метод не имеет реализации и может быть переопределен в наследниках для реакции на это событие. -
setAfterCommitHandler()
- позволяет задать обработчик, который будет вызван после того, как экран редактирования успешно закоммитил новую сущность и был закрыт. Данный обработчик можно использовать вместо переопределения методаafterCommit()
, тем самым избавившись от необходимости создания наследника действия. Например:@Named("customersTable.edit") private EditAction customersTableEdit; @Override public void init(Map<String, Object> params) { customersTableEdit.setAfterCommitHandler(new EditAction.AfterCommitHandler() { @Override public void handle(Entity entity) { showNotification("Committed", NotificationType.HUMANIZED); } }); }
-
afterWindowClosed()
- вызывается действием в последнюю очередь после закрытия экрана редактирования, независимо от того, была ли закоммичена редактируемая сущность. Данный метод не имеет реализации и может быть переопределен в наследниках для реакции на это событие. -
setAfterWindowClosedHandler()
- позволяет задать обработчик, который будет вызван после закрытия экрана редактирования, независимо от того, была ли закоммичена новая сущность или нет. Данный обработчик можно использовать вместо переопределения методаafterWindowClosed()
, тем самым избавившись от необходимости создания наследника действия.