3.5.4.9. EditorScreenFacet
用 EditorScreenFacet
facet 可以预配置 编辑界面。用声明式的方法定义编辑界面,而可以替代 ScreenBuilders.editor()
方法。EditorScreenFacet
用界面 xml 描述的 facets
元素定义。
组件的 xml 名称: editorScreen
示例:
<facets>
<editorScreen id="userEditor"
openMode="DIALOG"
editMode="CREATE"
entityClass="com.haulmont.cuba.security.entity.User"
onAction="action"/>
</facets>
用 EditorScreenFacet
配置的界面,也可以显式的调用 show()
方法展示:
@Inject
protected EditorScreenFacet userEditor;
@Subscribe("showDialog")
public void onShowDialogClick(Button.ClickEvent event) {
userEditor.show();
}
EditorScreenFacet
有下列属性:
-
addFirst
– 定义一个新 item 添加的位置,是集合的开始还是结尾。只影响单独的容器,对嵌套容器来说,新 item 总是添加至尾部。
-
container
– 设置 CollectionContainer。当界面提交时会更新该容器。如果是用的 嵌套 容器,框架会自动初始化父实体的引用并设置编辑组件的数据上下文。
-
editMode
– 设置界面的编辑模式,对应于EditMode
枚举:CREATE
(新建实体),或EDIT
(编辑已有实体)。
-
entityClass
– 实体类的全名称。
-
field
– 设置 PickerField 组件 id。如果设置了该字段,框架会在编辑器成功提交后,将提交的实体设置到这个 Field 上。
- editorScreen 的属性
-
addFirst - container - editMode - entityClass - field - id - listComponent onAction - onButton - openMode - screenClass - screenId
- editorScreen 的元素