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 的元素