/******************************************************************************* * Copyright (c) 2016 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.windup.ui.internal.explorer; import org.eclipse.jface.resource.CompositeImageDescriptor; import org.eclipse.swt.graphics.ImageData; import org.eclipse.swt.graphics.Point; /** * Represents an image descriptor for decorated images. */ public class ImageDecoratorDescriptor extends CompositeImageDescriptor { private ImageData baseImage; private ImageData decorator; private Point size; public ImageDecoratorDescriptor(ImageData baseImage, Point size, ImageData decorator) { this.baseImage = baseImage; this.decorator = decorator; this.size = size; } @Override public boolean equals(Object obj) { if (obj == null || !ImageDecoratorDescriptor.class.equals(obj.getClass())) { return false; } ImageDecoratorDescriptor other = (ImageDecoratorDescriptor)obj; return (baseImage.equals(other.baseImage) && size.equals(other.size) && decorator.equals(other.decorator)); } @Override public int hashCode() { return baseImage.hashCode() | size.hashCode() | decorator.hashCode(); } @Override protected void drawCompositeImage(int width, int height) { drawImage(baseImage, 0, 0); drawBottomLeft(); } private void drawBottomLeft() { drawImage(decorator, 0, size.y - decorator.height); } @Override protected Point getSize() { return size; } }