Экран редактирования предназначен для отображения и редактирования экземпляра сущности. Поддерживает функциональность установки
редактируемого экземпляра и действия по коммиту изменений в базу данных. Экран редактирования должен вызываться методом openEditor()
с передачей экземпляра сущности.
Для корректной работы стандартных действий идентификатор экрана редактирования в файле
screens.xml
должен иметь вид {имя_сущности}.edit
, например, sales$Customer.edit
.
Контроллер экрана редактирования должен быть унаследован от класса AbstractEditor. В XML экрана в атрибуте datasource
указывается источник данных, в который проставляется редактируемый экземпляр сущности. Для отображения действий, выполняющих
коммит или отмену изменений, в XML можно использовать следующие стандартные фреймы с кнопками:
-
editWindowActions
(файлcom/haulmont/cuba/gui/edit-window.actions.xml
) - содержит кнопки и -
extendedEditWindowActions
(файлcom/haulmont/cuba/gui/extended-edit-window.actions.xml
) - содержит кнопки , и
В экране редактирования неявно создаются следующие действия:
-
windowCommitAndClose
(соответствует константеWindow.Editor.WINDOW_COMMIT_AND_CLOSE
) - действие, выполняющее коммит изменений в базу данных и закрывающее экран. Создается при наличии в экране визуального компонента с идентификаторомwindowCommitAndClose
, в частности, при использовании вышеописанного стандартного фреймаextendedEditWindowActions
отображается кнопкой . -
windowCommit
(соответствует константеWindow.Editor.WINDOW_COMMIT
) - действие, выполняющее коммит изменений в базу данных. При отсутствии действияwindowCommitAndClose
после коммита закрывает экран. Создается всегда, и при наличии в экране вышеописанных стандартных фреймов отображается кнопкой . -
windowClose
(соответствует константеWindow.Editor.WINDOW_CLOSE
) - действие, закрывающее экран без коммита изменений. Создается всегда, и при наличии в экране вышеописанных стандартных фреймов отображается кнопкой .
Таким образом, если в экран добавлен фрейм editWindowActions
, то кнопка коммитит изменения и закрывает экран, а кнопка - закрывает без коммита. Если же добавлен фрейм extendedEditWindowActions
, то кнопка только коммитит изменения, оставляя экран открытым, кнопка коммитит и закрывает экран, кнопка - закрывает без коммита.
Вместо стандартных фреймов для отображения действий можно использовать произвольные компоненты, например,
LinkButton
.