package org.eclipse.uml2.diagram.common.providers; import java.util.ArrayList; import java.util.List; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.Path; import org.eclipse.emf.edit.provider.ComposedImage; import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.swt.graphics.Image; import org.eclipse.uml2.diagram.common.UMLCommonPlugin; import org.osgi.framework.Bundle; public class ImageUtils { private static final Bundle UML_BUNDLE = UMLCommonPlugin.getInstance().getBundle(); private static final String IMG_SYNC_DIAGRAM = "icons/ovr16/SyncDiagram.gif"; //$NON-NLS-1$ public static final String IMG_COLLAPSE_ALL = "icons/collapseall.gif"; //$NON-NLS-1$ public static ImageDescriptor overlay(ImageDescriptor original, ImageDescriptor overlay) { List<ImageDescriptor> images = new ArrayList<ImageDescriptor>(2); images.add(original); images.add(overlay); ComposedImage ci = new ComposedImage(images); return ExtendedImageRegistry.INSTANCE.getImageDescriptor(ci); } public static ImageDescriptor getPackageImage(ImageDescriptor original, boolean isSync) { if (!isSync) { return original; } return overlay(original, getSyncPackageImage()); } public static ImageDescriptor getImageDescriptor(String location) { ImageRegistry ir = UMLCommonPlugin.getInstance().getImageRegistry(); ImageDescriptor imageDescriptor = ir.getDescriptor(location); if (imageDescriptor == null) { imageDescriptor = ImageDescriptor.createFromURL(FileLocator.find(UML_BUNDLE, new Path(location), null)); if (imageDescriptor == null) { return null; } ir.put(location, imageDescriptor); } return imageDescriptor; } private static ImageDescriptor getSyncPackageImage() { return getImageDescriptor(IMG_SYNC_DIAGRAM); } }