使用Dynamic EMF之后ItemProvider(AdapterFactory)的实现

当使用dynamic emf的方式来生成emf model的时候,只会使用ReflectiveItemProviderAdapterFactory和ReflectiveItemProvider来充当emf.edit部分,这个时候如果需要定制ItemProvider和AdapterFactory的话,需要从这两个类继承,重载相关的方法,例如:

java 代码
  1. List factories = new ArrayList();   
  2.   factories.add(new ResourceItemProviderAdapterFactory());   
  3.   // 这里创建匿名ReflectiveItemProviderAdapterFactory的最终目的是为了定制Tree的图标   
  4.   factories.add(new ReflectiveItemProviderAdapterFactory() {   
  5.    @Override  
  6.    public Adapter createAdapter(Notifier target) {   
  7.     return new ReflectiveItemProvider(this) {   
  8.      @Override  
  9.      public Object getImage(Object object) {   
  10.       EClass eClass = ((EObject) object).eClass();   
  11.       // 改从emf中取得icon为从rule中取icon的内容,因为icon不属于业务模型的内容,只是属于显示层的信息   
  12.       return overlayImage(   
  13.         object,   
  14.         ViewEditorPlugin.INSTANCE   
  15.           .getImage((String) configReader   
  16.             .getIconPath(eClass.getName())));   
  17.      }   
  18.     };   
  19.    }   
  20.   });   
  21.   
  22.   adapterFactory = new ComposedAdapterFactory(factories);   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值