Java tutorial
/******************************************************************************* * Copyright (c) 2004 - 2006 University Of British Columbia and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * University Of British Columbia - initial API and implementation *******************************************************************************/ package org.eclipse.mylyn.internal.java.ui.editor; import org.eclipse.jdt.internal.ui.JavaPlugin; import org.eclipse.jface.resource.CompositeImageDescriptor; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.util.Assert; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Point; /** * @author Shawn Minto */ public class MylarJavaElementDescriptor extends CompositeImageDescriptor { private Image baseImage; private ImageDescriptor overlay; private Point fSize; public MylarJavaElementDescriptor(Image baseImage, ImageDescriptor overlay, Point size) { this.baseImage = baseImage; this.overlay = overlay; setImageSize(size); } @Override protected void drawCompositeImage(int width, int height) { if (baseImage == null) return; ImageData bg = baseImage.getImageData(); drawImage(bg, 0, 0); // Point size= getSize(); ImageData data = getImageData(overlay); drawImage(data, data.width, bg.height - data.height); } private ImageData getImageData(ImageDescriptor descriptor) { ImageData data = descriptor.getImageData(); // see bug 51965: // getImageData can return // null if (data == null) { data = DEFAULT_IMAGE_DATA; JavaPlugin.logErrorMessage("Image data not available: " + descriptor.toString()); //$NON-NLS-1$ } return data; } /** * Sets the size of the image created by calling <code>createImage()</code>. * * @param size * the size of the image returned from calling * <code>createImage()</code> * @see ImageDescriptor#createImage() */ public void setImageSize(Point size) { Assert.isNotNull(size); Assert.isTrue(size.x >= 0 && size.y >= 0); fSize = size; } @Override protected Point getSize() { return new Point(fSize.x, fSize.y); } }