3.5.4. 操作以及操作接口
Action
是一个接口,这个接口是对可视化组件的操作(换句话说,一些功能)的抽象。当从不同的可视化组件中调用相同的操作时(例如,分别从按钮和表格右键菜单中调用同一个操作),它特别有用。此外,此接口允许为操作提供其它属性,例如名称、可访问性和可见性标志等。
下面是 Action
接口方法:
actionPerform()
- 方法由与此操作关联的可视化组件调用。调用者实例被传递给该方法。getId()
- 方法返回操作的标识符。标识符通常在实现Action
的类的构造函数中设置,并且在操作对象创建后的整个生命周期中不会更改。获取和设置
caption
、description
、shortcut
、icon
、enabled
、visible
属性的方法。通常,相关可视化组件使用所有这些属性来设置其自身相应的属性。addPropertyChangeListener()
、removePropertyChangeListener()
方法用于添加和删除处理上述属性更改的监听器。监听器接收java.beans.PropertyChangeEvent
类型的通知,其中包含已更改属性的名称 、 旧值和新值。refreshState()
- 一个在特定的操作类中实现的方法,根据一些外部因素(例如用户权限)初始化上述属性。它通常在实现类的构造函数或从相关可视化组件中调用。addOwner()
、removeOwner()
、getOwner()
、getOwners()
– 用于控制操作和可视化组件之间关系的方法。
建议使用声明式创建或继承BaseAction类来实现操作。此外,还有一组适用于表格和选择器组件的标准操作。
与操作关联的可视化组件可以有两种类型:
- 只单个操作的可视化组件,这类组件实现
Component.ActionOwner
接口。这类组件有Button和LinkButton。
通过调用组件的 ActionOwner.setAction()
方法反操作链接到组件。此时,组件使用操作的属性设置自身相应的属性。(有关详细信息,请参阅组件概述)。
- 包含多个操作的可视化组件,这类组件实现
Component.ActionsHolder
接口。这类组件有Window
、Fragment
、DataGrid 、 Table及其继承者, Tree ,PopupButton,PickerField,LookupPickerField。
ActionsHolder.addAction()
方法用于向组件添加操作。在组件中实现此方法会检查它是否已包含具有相同标识符的操作。如果包含,则现有操作将替换为新操作。因此,可以在界面描述中声明标准操作,然后在控制器中创建具有不同属性的新操作,并将其添加到组件中。