适配器类是通过EMF.Edit这个框架生成的,通过它生成的适配器类为EMF模型起到了编辑器的作用,包括:
1为Jface组件(如TableViewer、TreeViewer等)提供ContentProvider和LabelProvider
2提供常用命令操作(添加、删除、更新、undo、redo等)。
在Jface组件中,视图内容是通过ContentProvider接口来提供的,而标签和图标的显示是通过LabelProvider接口来实现的,
在EMF中,AdapterFactoryContentProvider间接实现了IContentProvider接口,而AdapterFactoryLabelProvider间接实现了ILabelProvider接口,因此,Jface组件便可以通过他们来获取组件的内容和标签的显示信息。
上一篇文章已经提到,视图不直接与EMF实体类交互,而是通过其适配器类的处理来完成EMF模型到视图的绑定过程。
这些适配器在EMF中都是以ItemProvider的形式存在的(如实体类Book的适配器类便是BookItemProvider类),并且由统一的工厂类来对其进行管理(LibraryItemProviderAdapterFactory),因此在构造AdapterFactoryContentProvider对象时,只要将该适配器工厂类以
构造参数的形式传递进去,AdapterFactoryContentProvider便可以通过适配器工厂将代码逻辑转交给相应的适配器类。
可通过一段代码来看一下适配器类的使用:
假设我们要将EMF模型应用到TreeViewer组建上,则需要文本提供器实现ITreeContentProvider接口,AdapterFactoryContentProvider实现了这个接口,当我们调用getChildren()获取子节