/*
* Copyright 2015 Nokia Solutions and Networks
* Licensed under the Apache License, Version 2.0,
* see license.txt file for details.
*/
package org.robotframework.red.graphics;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
public class ImagesManager {
private static final Map<ImageDescriptor, Image> IMAGES_TABLE = new HashMap<ImageDescriptor, Image>(10);
private ImagesManager() {
// nothing to do
}
public static int size() {
return IMAGES_TABLE.size();
}
public static Image getImage(final ImageDescriptor imageDescriptor) {
return getImage(Display.getCurrent(), imageDescriptor);
}
public static Image getImage(final Display display, final ImageDescriptor imageDescriptor) {
if (imageDescriptor == null) {
return null;
}
Image image = IMAGES_TABLE.get(imageDescriptor);
if (image == null) {
image = imageDescriptor.createImage(display);
IMAGES_TABLE.put(imageDescriptor, image);
}
return image;
}
/**
* Dispose images manager.
*/
public static void disposeImages() {
for (final Image image : IMAGES_TABLE.values()) {
image.dispose();
}
IMAGES_TABLE.clear();
}
}