EditorScreenFacet
EditorScreenFacet
– это, по сути, ScreenFacet с расширенным набором опций для открытия экранов редактирования сущностей.
XML-имя компонента: editorScreen
.
Атрибуты
В дополнение к атрибутам ScreenFacet
, EditorScreenFacet
имеет следующие собственные атрибуты:
-
addFirst
- определяет, будет ли новый элемент добавлен в начало или конец коллекции. Это влияет только на автономные контейнеры; во вложенных контейнерах новые элементы всегда добавляются в конец.
-
container
- задает CollectionContainer. Контейнер обновляется после коммита экрана. Если контейнер вложенный, фреймворк автоматически инициализирует ссылку на родительский объект и настраивает контекст данных для редактирования композиций.
-
editMode
- устанавливает режим редактирования экрана, соответствует перечислениюEditMode
:-
CREATE
- для создания нового экземпляра сущности; -
EDIT
- для редактирования существующего.
-
-
entityClass
- полное имя класса сущности.
-
field
- задает id компонента EntityPicker. Если поле задано, фреймворк устанавливает в него закоммиченную сущность после успешного коммита редактора.
Пример использования:
<window xmlns="http://jmix.io/schema/ui/window"
caption="msg://editorScreenFacetScreen.caption">
<data readOnly="true">
<collection id="departmentsDc"
class="ui.ex1.entity.Department">
<fetchPlan extends="_base">
<property name="employees" fetchPlan="_base"/>
</fetchPlan>
<loader id="departmentsDl">
<query>
<![CDATA[select e from uiex1_Department e]]>
</query>
</loader>
</collection>
</data>
<facets>
<editorScreen id="editorScreen"
editMode="CREATE"
entityClass="ui.ex1.entity.Customer"
onButton="openEditBtn"
addFirst="true">
</editorScreen>
<dataLoadCoordinator auto="true"/>
<screenSettings id="settingsFacet" auto="true"/>
</facets>
<layout>
<button id="openEditBtn"
caption="Open an editor screen"
width="100%"/>
</layout>
</window>
События и слушатели
Чтобы сгенерировать заглушку слушателя в Jmix Studio, выберите фасет в XML-дескрипторе экрана или на панели иерархии Jmix UI и используйте вкладку Handlers на панели инспектора Jmix UI. В качестве альтернативы вы можете воспользоваться кнопкой Generate Handler на верхней панели контроллера экрана. |
AfterCloseEvent
AfterCloseEvent
отправляется после закрытия настраиваемого фасетом экрана. Подробнее см. в AfterCloseEvent.
AfterShowEvent
AfterShowEvent
отправляется после отображения настраиваемого фасетом экрана. Подробнее см. в AfterShowEvent.
EntityProvider
Метод делегата EntityProvider
позволяет передать экземпляр сущности на открывающийся экран:
@Autowired
private DataManager dataManager;
@Install(to = "editorScreen", subject = "entityProvider")
private User editorScreenEntityProvider() {
User user = dataManager.create(User.class);
user.setFirstName("John");
user.setLastName("Doe");
return user;
}
Чтобы создать слушателя события программно, используйте метод setEntityProvider()
.
Initializer
Слушатель Initializer
принимает новый экземпляр сущности и может инициализировать его перед отображением на экране редактора. Подробнее см. в Initializer.
Чтобы создать слушателя события программно, используйте метод setInitializer()
.
OptionsProvider
См. OptionsProvider.
ParentDataContextProvider
Метод делегата ParentDataContextProvider
позволяет передать родительский DataContext в открывающийся экран:
@Autowired
private DataContext dataContext;
@Install(to = "editorScreen", subject = "parentDataContextProvider")
private DataContext editorScreenParentDataContextProvider() {
return dataContext;
}
Чтобы задать провайдер родительского DataContext
программно, используйте метод setParentDataContextProvider()
.
ScreenConfigurer
См. ScreenConfigurer.
Transformation
Этот слушатель вызывается после выбора и валидации сущности в экране редактора. Подробнее см. в Transformation.
Все XML-атрибуты
Вы можете просматривать и редактировать применимые к фасету атрибуты с помощью панели инспектора Jmix UI в дизайнере экранов Studio. |
addFirst - container - entityClass - entityMode - field - id - listComponent - onAction - onButton - openMode - screenClass - screenId