操作

Action 接口是对可视化组件内部的一个操作(或者说,某些功能)的抽象。当同一个操作可以由不同的可视化组件调用时(例如,通过按钮和表格的右键菜单调用),这个接口非常有用。Action 也可以用于定义一些通用的配置,例如,标题、快捷键、可访问性(a11y)和可见性(visibility)的标签等。

可以在视图的 XML 中声明式创建操作,或通过继承 BaseAction 类编程式创建。另外,对于列表和选取组件,框架也提供了一组标准的操作。

关联操作的可视化组件分为两类:

  • 带有单一操作的可视化组件,实现了 HasAction 接口。例如,Button

    通过调用 HasAction.setAction() 方法将操作与组件关联。

  • 带有多个操作的可视化组件,实现了 HasActions 接口。例如,DataGridEntityComboBoxEntityPicker

    使用 HasActions.addAction() 方法为组件添加操作。组件内实现的该方法会先检查是否已经存在相同标识符的操作。如果已存在,会用新的操作替换已存在的。因此,可以先在视图的 XML 中定义一个标准的操作,然后在控制器代码中编程式创建一个不同配置的新操作,然后设置给组件,替换掉 XML 中声明的标准操作。

  • 视图本身也可以包含操作。可以在 XML 的顶级元素 <actions> 定义,或者使用视图类的 getViewActions.addAction() 方法编程式添加。