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();
}

另外,这个 facet 还可以通过 id 关联至任何操作(参阅 onAction 属性)或按钮(参阅 onButton 属性)。

EditorScreenFacet 有下列属性:

  • addFirst – 定义一个新 item 添加的位置,是集合的开始还是结尾。只影响单独的容器,对嵌套容器来说,新 item 总是添加至尾部。

  • container – 设置 CollectionContainer。当界面提交时会更新该容器。如果是用的 嵌套 容器,框架会自动初始化父实体的引用并设置编辑组件的数据上下文。

  • editMode – 设置界面的编辑模式,对应于 EditMode 枚举:CREATE(新建实体),或 EDIT(编辑已有实体)。

  • entityClass – 实体类的全名称。

  • field – 设置 PickerField 组件 id。如果设置了该字段,框架会在编辑器成功提交后,将提交的实体设置到这个 Field 上。

  • listComponent – 设置列表组件 id。如果没设置 container,则通过列表组件获取。通常,列表组件是 TableDataGrid,用来展示实体列表。


editorScreen 的属性

addFirst - container - editMode - entityClass - field - id - listComponent onAction - onButton - openMode - screenClass - screenId

editorScreen 的元素

properties