当前位置:首页 > 网站旧栏目 > 学习园地 > 设计软件教程 > 使用Dynamic EMF之后ItemProvider(AdapterFactory)的实现

使用Dynamic EMF之后ItemProvider(AdapterFactory)的实现
2010-01-14 22:47:48  作者:  来源:

当使用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);   

安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询