package net.sourceforge.tagsea.java.resources.internal;
import java.util.Date;
import net.sourceforge.tagsea.AbstractWaypointDelegate;
import net.sourceforge.tagsea.core.IWaypoint;
import net.sourceforge.tagsea.java.JavaTagsPlugin;
import net.sourceforge.tagsea.java.JavaWaypointUI;
import net.sourceforge.tagsea.java.JavaWaypointUtils;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.texteditor.IAnnotationImageProvider;
import org.eclipse.ui.texteditor.MarkerAnnotation;
public class JavaWaypointAnnotationImageProvider implements IAnnotationImageProvider {
/* (non-Javadoc)
* @see org.eclipse.ui.texteditor.IAnnotationImageProvider#getImageDescriptor(java.lang.String)
*/
public ImageDescriptor getImageDescriptor(String imageDescritporId) {
return JavaTagsPlugin.getDefault().getImageRegistry().getDescriptor(imageDescritporId);
}
/* (non-Javadoc)
* @see org.eclipse.ui.texteditor.IAnnotationImageProvider#getImageDescriptorId(org.eclipse.jface.text.source.Annotation)
*/
public String getImageDescriptorId(Annotation annotation) {
if (annotation instanceof MarkerAnnotation) {
IWaypoint wp = JavaWaypointUtils.getWaypointForMarker(((MarkerAnnotation)annotation).getMarker());
if (wp != null) {
AbstractWaypointDelegate delegate = JavaTagsPlugin.getJavaWaypointDelegate();
Date date = wp.getDate();
String author = wp.getAuthor();
if (date == null || date.equals(delegate.getDefaultValue(IWaypoint.ATTR_DATE)))
return JavaWaypointUI.IMAGE_JAVA_WAYPOINT_QUICKFIX;
if (author == null || author.equals(delegate.getDefaultValue(IWaypoint.ATTR_AUTHOR)))
return JavaWaypointUI.IMAGE_JAVA_WAYPOINT_QUICKFIX;
return JavaWaypointUI.IMAGE_JAVA_WAYPOINT;
}
}
return "";
}
/* (non-Javadoc)
* @see org.eclipse.ui.texteditor.IAnnotationImageProvider#getManagedImage(org.eclipse.jface.text.source.Annotation)
*/
public Image getManagedImage(Annotation annotation) {
return JavaTagsPlugin.getDefault().getImageRegistry().get(getImageDescriptorId(annotation));
}
}