标准操作

框架提供标准操作用于处理常见任务,例如为 dataGrid 中选择的实体调用详情界面。通过在 type 属性中指定其类型,就可以在视图 XML 描述中声明标准操作。

每个标准操作都通过一个使用了 @ActionType("<some_type>") 注解的类实现。该类定义了操作的默认属性和行为。

可以通过指定基本操作的 XML 属性 来覆盖通用的属性:texticonshortcutCombination 等。示例:

<action id="create" type="list_create"
        actionVariant="SUCCESS" icon="PLUS_CIRCLE"/>

有多种类型的标准操作:

附加属性

标准操作通常带有附加参数,可以在 XML 进行设置或者在 Java 中用 setter 方法进行设置。在 XML 中,使用内部的 <properties> 元素设置,其中每个 <property> 元素对应一个操作类中的 setter 方法:

<action id="edit" type="list_edit">
    <properties>
        <property name="viewId" value="CustomDepartmentDetailView"/>
    </properties>
</action>

在 Java 控制器也可以做同样的设置:

@ViewComponent("myDepartmentsTable.edit")
private EditAction<Department> myDepartmentsTableEdit;

@Subscribe
public void onInit(final InitEvent event) {
    myDepartmentsTableEdit.setViewId("CustomDepartmentDetailView");
}

配置处理方法

如果一个操作的 setter 接收 handler 参数,可以在视图控制器安装一个 handler。比如,CreateActionsetAfterSaveHandler(Consumer) 方法,支持设置一个 handler,在创建的实体提交之后调用这个 handler。那么可以按照下面的方式在视图控制器中安装:

@Install(to = "departmentsTable.create", subject = "afterSaveHandler")
private void departmentsTableCreateAfterSaveHandler(final Department department) {
    notifications.create("Created " + department).show();
}

在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 CodeGenerate 菜单(Alt+Insert / Cmd+N)生成。