private Image getImage(IJavaAnnotation annotation, int imageType) {
    if ((imageType == QUICKFIX_WARNING_IMAGE
            || imageType == QUICKFIX_ERROR_IMAGE
            || imageType == QUICKFIX_INFO_IMAGE)
        && fCachedImageType == imageType) return fCachedImage;

    Image image = null;
    switch (imageType) {
      case OVERLAY_IMAGE:
        IJavaAnnotation overlay = annotation.getOverlay();
        image = getManagedImage((Annotation) overlay);
        fCachedImageType = -1;
        break;
      case QUICKFIX_WARNING_IMAGE:
        image = getQuickFixWarningImage();
        fCachedImageType = imageType;
        fCachedImage = image;
        break;
      case QUICKFIX_ERROR_IMAGE:
        image = getQuickFixErrorImage();
        fCachedImageType = imageType;
        fCachedImage = image;
        break;
      case QUICKFIX_INFO_IMAGE:
        image = getQuickFixInfoImage();
        fCachedImageType = imageType;
        fCachedImage = image;
        break;
      case GRAY_IMAGE:
        {
          String annotationType = annotation.getType();
          if (JavaMarkerAnnotation.ERROR_ANNOTATION_TYPE.equals(annotationType)) {
            image = JavaPluginImages.get(JavaPluginImages.IMG_OBJS_ERROR_ALT);
          } else if (JavaMarkerAnnotation.WARNING_ANNOTATION_TYPE.equals(annotationType)) {
            image = JavaPluginImages.get(JavaPluginImages.IMG_OBJS_WARNING_ALT);
          } else if (JavaMarkerAnnotation.INFO_ANNOTATION_TYPE.equals(annotationType)) {
            image = JavaPluginImages.get(JavaPluginImages.IMG_OBJS_INFO_ALT);
          }
          fCachedImageType = -1;
          break;
        }
    }

    return image;
  }
 private int getImageType(IJavaAnnotation annotation) {
   int imageType = NO_IMAGE;
   if (annotation.hasOverlay()) imageType = OVERLAY_IMAGE;
   else if (!annotation.isMarkedDeleted()) {
     if (showQuickFix(annotation)) {
       if (JavaMarkerAnnotation.ERROR_ANNOTATION_TYPE.equals(annotation.getType())) {
         imageType = QUICKFIX_ERROR_IMAGE;
       } else if (JavaMarkerAnnotation.WARNING_ANNOTATION_TYPE.equals(annotation.getType())) {
         imageType = QUICKFIX_WARNING_IMAGE;
       } else {
         imageType = QUICKFIX_INFO_IMAGE;
       }
     }
   } else {
     imageType = GRAY_IMAGE;
   }
   return imageType;
 }