/** * Դ�������ƣ�EObjectColumnLabelProvider.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.ui * ����˵����JRES Studio�Ľ���չ�ֻ�����ܺͱ༭��ع��� * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.ui.editor.viewers; import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.ecore.EStructuralFeature; import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.DecorationOverlayIcon; import org.eclipse.jface.viewers.IDecoration; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import com.hundsun.ares.studio.ui.editor.IDiagnosticProvider; public class EObjectColumnLabelProvider extends BaseEObjectColumnLabelProvider { private static ImageDescriptor IMG_DEC_ERROR = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_DEC_FIELD_ERROR); private static ImageDescriptor IMG_DEC_WARNING = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_DEC_FIELD_WARNING); private static Image IMG_ERROR = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK); private static Image IMG_WARNING = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK); private IDiagnosticProvider diagnosticProvider; /** * @param attribute */ public EObjectColumnLabelProvider(EStructuralFeature attribute) { super(attribute); } /** * @param attributeProvider */ public EObjectColumnLabelProvider( IEStructuralFeatureProvider attributeProvider) { super(attributeProvider); } /** * @param diagnosticProvider the diagnosticProvider to set */ public void setDiagnosticProvider(IDiagnosticProvider diagnosticProvider) { this.diagnosticProvider = diagnosticProvider; } protected Diagnostic getDiagnostic(Object element) { if (diagnosticProvider != null) { return diagnosticProvider.getDiagnostic(getOwner(element), getEStructuralFeature(element)); } return null; } /** * @return the diagnosticProvider */ protected IDiagnosticProvider getDiagnosticProvider() { return diagnosticProvider; } /* (non-Javadoc) * @see org.eclipse.jface.viewers.ColumnLabelProvider#getImage(java.lang.Object) */ @Override final public Image getImage(Object element) { Image image = doGetImage(element); // �����������ͼ��ģ�����Ҫ���ϱ�� Diagnostic diagnostic = getDiagnostic(element); if (diagnostic != null) { if (image == null) { switch (diagnostic.getSeverity()) { case Diagnostic.ERROR: return IMG_ERROR; case Diagnostic.WARNING: return IMG_WARNING; } } else { DecorationOverlayIcon icon = null; switch (diagnostic.getSeverity()) { case Diagnostic.ERROR: icon = new DecorationOverlayIcon(image, IMG_DEC_ERROR, IDecoration.BOTTOM_LEFT); break; case Diagnostic.WARNING: icon = new DecorationOverlayIcon(image, IMG_DEC_WARNING, IDecoration.BOTTOM_LEFT); break; } if (icon != null) { return ExtendedImageRegistry.INSTANCE.getImage(icon); } else { return image; } } } return image; } protected Image doGetImage(Object element) { return null; } @Override public Color getBackground(Object element) { return super.getBackground(element); } @Override public String getToolTipText(Object element) { Diagnostic diagnostic = getDiagnostic(element); if (diagnostic != null) { return diagnostic.getMessage(); } return super.getToolTipText(element); } @Override public int getToolTipTimeDisplayed(Object object) { return 0; } }