| /******************************************************************************* |
| * Copyright (c) 2008, 2014 BestSolution.at 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: |
| * Tom Schindl <tom.schindl@bestsolution.at> - initial API and implementation |
| * Boris Bokowski, IBM Corporation - initial API and implementation |
| ******************************************************************************/ |
| package org.eclipse.e4.ui.internal.workbench.swt; |
| |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| import org.eclipse.e4.ui.workbench.swt.util.ISWTResourceUtilities; |
| import org.eclipse.emf.common.util.URI; |
| import org.eclipse.jface.resource.ImageDescriptor; |
| import org.eclipse.swt.graphics.GC; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.swt.graphics.Rectangle; |
| |
| public class ResourceUtility implements ISWTResourceUtilities { |
| |
| public ResourceUtility() { |
| super(); |
| } |
| |
| @Override |
| public ImageDescriptor imageDescriptorFromURI(URI iconPath) { |
| try { |
| return ImageDescriptor.createFromURL(new URL(iconPath.toString())); |
| } catch (MalformedURLException e) { |
| System.err.println("iconURI \"" + iconPath.toString() |
| + "\" is invalid, no image will be shown"); |
| return null; |
| } |
| } |
| |
| @Override |
| public Image adornImage(Image toAdorn, Image adornment) { |
| if (toAdorn == null) |
| return null; |
| if (adornment == null) |
| return toAdorn; |
| Rectangle adornmentSize = adornment.getBounds(); |
| |
| Image adornedImage = new Image(toAdorn.getDevice(), 16, 16); |
| GC gc = new GC(adornedImage); |
| gc.drawImage(toAdorn, 0, 0); |
| // For now assume top-right |
| gc.drawImage(adornment, 16 - adornmentSize.width, 0); |
| gc.dispose(); |
| |
| return adornedImage; |
| } |
| } |