/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.editor.text.annotation; import org.eclipse.jface.text.source.Annotation; import org.eclipse.jface.text.source.IAnnotationPresentation; import org.eclipse.jface.text.source.ImageUtilities; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Canvas; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import com.hundsun.ares.studio.core.IARESProblem; /** * ��Ӧ��һ��ARESProblem��Annotation * @author sundl */ public class ARESProblemAnnotation extends Annotation implements IAnnotationPresentation{ private IARESProblem problem; private static Image errorImage = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR); private static Image warnImage = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_WARNING); private Image image; public ARESProblemAnnotation(IARESProblem problem) { this.problem = problem; if (problem.isError()) { image = errorImage; } else if (problem.isWarning()) { image = warnImage; } } public String getText() { return problem.getMessage(); } /* (non-Javadoc) * @see org.eclipse.jface.text.source.IAnnotationPresentation#getLayer() */ @Override public int getLayer() { return 1; } /* (non-Javadoc) * @see org.eclipse.jface.text.source.IAnnotationPresentation#paint(org.eclipse.swt.graphics.GC, org.eclipse.swt.widgets.Canvas, org.eclipse.swt.graphics.Rectangle) */ @Override public void paint(GC gc, Canvas canvas, Rectangle bounds) { if (image != null) ImageUtilities.drawImage(image, gc, canvas, bounds, SWT.CENTER, SWT.TOP); } }