package com.hundsun.ares.studio.ui.editor.extend; import java.util.ArrayList; import java.util.List; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import com.hundsun.ares.studio.core.IARESElement; import com.hundsun.ares.studio.core.model.extend.EMFExtendPropertyDescriptor; import com.hundsun.ares.studio.core.model.extend.IBasicExtendPropertyDescriptor; import com.hundsun.ares.studio.core.model.extend.IExtendedPropertyProvider; import com.hundsun.ares.studio.core.model.extend.IExtendedPropertyProvider2; import com.hundsun.ares.studio.core.model.extend.UserExtendedPropertyDescriptor; import com.hundsun.ares.studio.core.model.extend.UserExtendedPropertyTypes; public class OldExtendPropertyProvider implements IExtendedPropertyProvider, IExtendedPropertyProvider2 { /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IExtendPropertyProvider#isEnabled(com.hundsun.ares.studio.core.IARESElement, org.eclipse.emf.ecore.EClass) */ @Override public boolean isEnabled(IARESElement element, EClass clazz) { return true; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IExtendPropertyProvider#getKey() */ @Override public String getKey() { return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IExtendPropertyProvider#createMapValueObject() */ @Override public EObject createMapValueObject() { return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IExtendPropertyProvider#getExtendProperties() */ @Override public IBasicExtendPropertyDescriptor[] getExtendProperties() { return null; } /* (non-Javadoc) * @see com.hundsun.ares.studio.core.model.extend.IExtendPropertyProvider2#getExtendProperties(com.hundsun.ares.studio.core.IARESElement, org.eclipse.emf.ecore.EClass) */ @Override public IBasicExtendPropertyDescriptor[] getExtendProperties(IARESElement element, EClass clazz) { List<IBasicExtendPropertyDescriptor> result = new ArrayList<IBasicExtendPropertyDescriptor>(); IExtensibleModelEditingSupport[] supports = null; if (element != null) { supports = ExtensibleModelUtils.getEndabledEditingSupports(element, clazz); } else { supports = ExtensibleModelManager.getInstance().getExtensibleModelEditingSupports(clazz); } for (IExtensibleModelEditingSupport sp : supports) { IExtensibleModelPropertyDescriptor[] descriptors = sp.getPropertyDescriptors(element, clazz); for (IExtensibleModelPropertyDescriptor d : descriptors) { // // TODO: ��ʱ������ // if (d.isDerived()) // continue; String cate = d.getCategory(); String displayName = d.getDisplayName(); String desc = d.getDescription(); if (d instanceof IBasicExtendPropertyDescriptor) { result.add((IBasicExtendPropertyDescriptor) d); } else if (d instanceof IMapExtensibleModelPropertyDescriptor) { IMapExtensibleModelPropertyDescriptor mapDesc = (IMapExtensibleModelPropertyDescriptor) d; // Ĭ����Text���� UserExtendedPropertyTypes type = UserExtendedPropertyTypes.TEXT; if (d instanceof BooleanMapEMPropertyDescriptor) { type = UserExtendedPropertyTypes.BOOLEAN; } else if (d instanceof LongTextMapEMPropertyDescriptor) { type = UserExtendedPropertyTypes.LONG_TEXT; } else if (d instanceof TextMapEMPropertyDescriptor) { type = UserExtendedPropertyTypes.TEXT; } UserExtendedPropertyDescriptor basic = new UserExtendedPropertyDescriptor(String.valueOf(mapDesc.getKey()), type); basic.setCategory(cate); basic.setDisplayName(displayName); basic.setDescription(desc); result.add(basic); } else { EStructuralFeature feature = d.getStructuralFeature(); EMFExtendPropertyDescriptor basic = new EMFExtendPropertyDescriptor(sp.getKey(), feature); basic.setCategory(cate); basic.setDisplayName(displayName); basic.setDescription(desc); result.add(basic); } } } return result.toArray(new IBasicExtendPropertyDescriptor[0]); } }