當使用dynamic emf的方式來生成emf model的時候,只會使用ReflectiveItemProviderAdapterFactory和ReflectiveItemProvider來充當emf.edit部分,這個時候如果需要定制ItemProvider和AdapterFactory的話,需要從這兩個類繼承,重載相關的方法,例如:
java 代碼
- List factories = new ArrayList();
- factories.add(new ResourceItemProviderAdapterFactory());
- // 這里創建匿名ReflectiveItemProviderAdapterFactory的最終目的是為了定制Tree的圖標
- factories.add(new ReflectiveItemProviderAdapterFactory() {
- @Override
- public Adapter createAdapter(Notifier target) {
- return new ReflectiveItemProvider(this) {
- @Override
- public Object getImage(Object object) {
- EClass eClass = ((EObject) object).eClass();
- // 改從emf中取得icon為從rule中取icon的內容,因為icon不屬于業務模型的內容,只是屬于顯示層的信息
- return overlayImage(
- object,
- ViewEditorPlugin.INSTANCE
- .getImage((String) configReader
- .getIconPath(eClass.getName())));
- }
- };
- }
- });
- adapterFactory = new ComposedAdapterFactory(factories);
安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢】