package net.sourceforge.pmd.eclipse.util; import java.util.HashMap; import java.util.Map; import net.sourceforge.pmd.eclipse.plugin.PMDPlugin; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; /** * * @author Brian Remedios */ public class ResourceManager { private Map<String, Image> imagesByCode = new HashMap<String, Image>(); private static ResourceManager instance = new ResourceManager(); private ResourceManager() {} public static Image imageFor(String codePath) { if (instance.imagesByCode.containsKey(codePath)) { return instance.imagesByCode.get(codePath); } ImageDescriptor desc = PMDPlugin.getImageDescriptor(codePath); if (desc == null) { System.out.println("no image for: " + codePath); // TODO handle better return null; } Image image= desc.createImage(); instance.imagesByCode.put(codePath, image); return image; } public static void dispose() { for (Image image : instance.imagesByCode.values()) { image.dispose(); } } }