3.6.1.1.4. 编辑界面

这是旧版本的 API。对于从 7.0 开始的新 API,请参阅 界面控制器

编辑界面用来展示和编辑实体实例。编辑界面通过需要编辑的实体来做界面初始化,并且包含操作,能把对实体的改动保存到数据库。编辑界面需要通过 openEditor() 方法打开,此方法接收一个实体的实例作为参数。

默认情况下,标准的 CreateAction - 创建EditAction - 编辑操作会打开编辑界面,编辑界面使用 {entity_name}.edit 标识符注册在 screens.xml 文件内,比如,sales_Customer.edit

编辑界面控制器必须从 AbstractEditor 类继承。

可以在 Studio 里使用 Entity editor 模板来创建实体的编辑界面。

编辑界面的 XML 描述中,datasource 属性应当指向一个包含编辑实体实例的数据源。以下这些 XML 中标准的按钮子框架组可以用来展示提交或者撤销操作:

  • editWindowActionscom/haulmont/cuba/gui/edit-window.actions.xml 文件) – 包含 OKCancel 按钮。

  • extendedEditWindowActionscom/haulmont/cuba/gui/extended-edit-window.actions.xml 文件) – 包含 OK & CloseOKCancel

下列操作需要在编辑界面显式初始化:

  • 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