/** * Դ�������ƣ�MetadataOverviewHeaderColumnLabelProvider.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.metadata.ui * ����˵����$desc * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.metadata.ui.viewer; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EObject; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.jres.metadata.ui.MetadataUI; import com.hundsun.ares.studio.jres.metadata.ui.model.MetadataOverviewElement; import com.hundsun.ares.studio.jres.model.metadata.BusinessDataType; import com.hundsun.ares.studio.jres.model.metadata.ConstantItem; import com.hundsun.ares.studio.jres.model.metadata.DictionaryType; import com.hundsun.ares.studio.jres.model.metadata.ErrorNoItem; import com.hundsun.ares.studio.jres.model.metadata.MetadataItem; import com.hundsun.ares.studio.jres.model.metadata.StandardDataType; import com.hundsun.ares.studio.jres.model.metadata.StandardField; import com.hundsun.ares.studio.jres.model.metadata.TypeDefaultValue; import com.hundsun.ares.studio.jres.model.metadata.util.CircularReferenceException; import com.hundsun.ares.studio.jres.model.metadata.util.MetadataUtil; import com.hundsun.ares.studio.ui.editor.viewers.EObjectColumnLabelProvider; import com.hundsun.ares.studio.ui.editor.viewers.IEStructuralFeatureProvider; /** * @author wangxh * */ public class MetadataOverviewHeaderColumnLabelProvider extends EObjectColumnLabelProvider { private static Image IMG_TYPE_DEFAULT = MetadataUI.getDefault().getImage("icons/full/obj16/defaultValueFile.png"); private static Image IMG_BIZ_TYPE = MetadataUI.getDefault().getImage("icons/full/obj16/bizTypeFile.png"); private static Image IMG_CONST = MetadataUI.getDefault().getImage("icons/full/obj16/cnstFile.png"); private static Image IMG_DICT= MetadataUI.getDefault().getImage("icons/full/obj16/dictFile.png"); private static Image IMG_ERRORNO = MetadataUI.getDefault().getImage("icons/full/obj16/errornoFile.png"); private static Image IMG_STD_FIELD = MetadataUI.getDefault().getImage("icons/full/obj16/stdFieldFile.png"); private static Image IMG_STD_TYPE = MetadataUI.getDefault().getImage("icons/full/obj16/stdTypeFile.png"); public MetadataOverviewHeaderColumnLabelProvider( IEStructuralFeatureProvider attributeProvider) { super(attributeProvider); } public MetadataOverviewHeaderColumnLabelProvider(EAttribute attribute) { super(attribute); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.viewers.EObjectColumnLabelProvider#doGetImage(java.lang.Object) */ @Override protected Image doGetImage(Object element) { MetadataItem item = ((MetadataOverviewElement) element).getItem();; if (item instanceof TypeDefaultValue) { return IMG_TYPE_DEFAULT; } else if (item instanceof BusinessDataType) { return IMG_BIZ_TYPE; } else if (item instanceof ConstantItem) { return IMG_CONST; } else if (item instanceof DictionaryType) { return IMG_DICT; } else if (item instanceof ErrorNoItem) { return IMG_ERRORNO; } else if (item instanceof StandardField) { return IMG_STD_FIELD; } else if (item instanceof StandardDataType) { return IMG_STD_TYPE; } return super.doGetImage(element); } @Override public Color getBackground(Object element) { MetadataOverviewElement moe = (MetadataOverviewElement) element; if (moe.isConflict()) { return Display.getDefault().getSystemColor(SWT.COLOR_YELLOW); } return super.getBackground(element); } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.metadata.ui.viewer.MetadataColumnLabelProvider#getOwner(java.lang.Object) */ @Override protected EObject getOwner(Object element) { // �������õĴ��� MetadataItem item = ((MetadataOverviewElement) element).getItem(); IARESResource resource = ((MetadataOverviewElement) element).getResource(); if (MetadataUtil.isReferencableFeature(item, getEStructuralFeature(element))) { MetadataItem entity = null; try { entity = MetadataUtil.defaultResolve(item, resource).first; } catch (CircularReferenceException e) { } return entity == null ? item : entity; } return item; } }