/** * Դ�������ƣ�BaseEObjectColumnLabelProvider.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.ui * ����˵����$desc * ����ĵ��� * ���ߣ���Ҷ�� */ package com.hundsun.ares.studio.ui.editor.viewers; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.ColumnLabelProvider; import org.eclipse.swt.graphics.Font; /** * @author gongyf * */ public class BaseEObjectColumnLabelProvider extends ColumnLabelProvider implements IColumnViewerTextCopySupport{ private IEStructuralFeatureProvider attributeProvider; public BaseEObjectColumnLabelProvider(EStructuralFeature attribute) { this(new IEStructuralFeatureProvider.Impl(attribute)); } public BaseEObjectColumnLabelProvider(IEStructuralFeatureProvider attributeProvider) { super(); this.attributeProvider = attributeProvider; } public EStructuralFeature getEStructuralFeature(Object element) { return attributeProvider.getFeature(element); } /** * @param attributeProvider the attributeProvider to set */ public void setAttributeProvider(IEStructuralFeatureProvider attributeProvider) { this.attributeProvider = attributeProvider; } @Override public String getText(Object element) { EStructuralFeature attribute = getEStructuralFeature(element); EObject owner = getOwner(element); if (attribute != null && owner != null && owner.eClass().getEAllAttributes().contains(attribute)) { Object value = owner.eGet(attribute); if (value == null) { value = ""; } return String.valueOf(value ); } return ""; } /** * ��ȡ��Ҫ������EObject * @param element * @return */ protected EObject getOwner(Object element) { return (EObject) element; } /* (non-Javadoc) * @see com.hundsun.ares.studio.jres.ui.viewers.IColumnViewerTextCopySupport#getCopyText(java.lang.Object) */ @Override public String getCopyText(Object element) { return getText(element); } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ColumnLabelProvider#getFont(java.lang.Object) */ @Override public Font getFont(Object element) { return JFaceResources.getTextFont(); } }