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