package com.illumina.basespace.igv.ui;
import java.awt.Image;
import java.util.HashMap;
import javax.swing.ImageIcon;
/**
*
* @author bking
*
*/
public class ImageProvider
{
private HashMap<String,ImageIcon> images = new HashMap<String,ImageIcon>(64);
private static ImageProvider singletonObject;
private ImageProvider()
{
}
public static synchronized ImageProvider instance()
{
if (singletonObject == null)
singletonObject = new ImageProvider();
return singletonObject;
}
public ImageIcon getIcon(String name)
{
ImageIcon icon = images.get(name);
if (icon == null)icon = addImage(name);
return icon;
}
public Image getImage(String name)
{
return getIcon(name).getImage();
}
protected ImageIcon addImage(String name)
{
try
{
ImageIcon icon = new ImageIcon(singletonObject.getClass().getResource("/images/" + name));
images.put(name,icon);
return icon;
}
catch(Throwable t)
{
return null;
}
}
}