package org.safehaus.penrose.studio.image;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.eclipse.swt.graphics.Image;
import java.util.Properties;
import java.util.HashMap;
import java.util.Map;
/**
* @author Endi Sukma Dewata
*/
public class ImageManager {
public String pluginName;
public Properties properties;
public Map<String,Image> images = new HashMap<String,Image>();
public ImageManager(String pluginName) {
this.pluginName = pluginName;
}
public void init() throws Exception {
}
public void destroy() {
for (Image image : images.values()) {
image.dispose();
}
}
public Properties getProperties() {
return properties;
}
public void setProperties(Properties properties) {
this.properties = properties;
}
public ImageDescriptor getImageDescriptor(String name) {
String path = properties.getProperty(name);
if (path == null) return ImageDescriptor.getMissingImageDescriptor();
return AbstractUIPlugin.imageDescriptorFromPlugin(pluginName, path);
}
public Image createImage(String name) {
ImageDescriptor descriptor = getImageDescriptor(name);
return descriptor.createImage();
}
public Image getImage(String name) {
Image image = images.get(name);
if (image == null) {
image = createImage(name);
images.put(name, image);
}
return image;
}
}