原创作者: macrochen   阅读:686次   评论:0条   更新时间:2011-06-01    

当使用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);   
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

Global site tag (gtag.js) - Google Analytics