package com.android.ide.eclipse.editors.ui;
import org.eclipse.jface.resource.CompositeImageDescriptor;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.DecorationOverlayIcon;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.ImageData;
import org.eclipse.swt.graphics.Point;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
/**
* ImageDescriptor that adds a error marker.
* Based on {@link DecorationOverlayIcon} only available in Eclipse 3.3
*/
public class ErrorImageComposite extends CompositeImageDescriptor {
private Image mBaseImage;
private ImageDescriptor mErrorImageDescriptor;
private Point mSize;
public ErrorImageComposite(Image baseImage) {
mBaseImage = baseImage;
mErrorImageDescriptor = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(
ISharedImages.IMG_OBJS_ERROR_TSK);
mSize = new Point(baseImage.getBounds().width, baseImage.getBounds().height);
}
@Override
protected void drawCompositeImage(int width, int height) {
ImageData baseData = mBaseImage.getImageData();
drawImage(baseData, 0, 0);
ImageData overlayData = mErrorImageDescriptor.getImageData();
if (overlayData.width == baseData.width && baseData.height == baseData.height) {
overlayData = overlayData.scaledTo(14, 14);
drawImage(overlayData, -3, mSize.y - overlayData.height + 3);
} else {
drawImage(overlayData, 0, mSize.y - overlayData.height);
}
}
@Override
protected Point getSize() {
return mSize;
}
}
|