当我们使用TableViewer或TreeViewer时,每当其input值发生改变,通常要调用视图的refresh方法来执行刷新操作,而使用EMF模型作为视图组件的文本提供器和标签提供器,却可以省略refresh操作。
当构建AdapterFactoryContentProvider和AdapterFactoryLabelProvider对象时,需要传入所需要的适配器工厂类,该适配器工厂类实现了IChangeNotifier接口定义的3个方法,起到了监听器的作用:
addListener(INotifyChangedListener notifyChangedListener):添加监听者
removeListener(INotifyChangedListener notifyChangedListener):删除监听者
fireNotifyChanged(Notification notification):对监听者执行通知操作
而同时AdapterFactoryContentProvider和AdapterFactoryLabelProvider对象都实现了INotifyChangedListener接口,因此在构造方法中,便可将自己注册成为适配器工厂类的监听者: