diff --git a/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/ResourceManager.java b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/ResourceManager.java new file mode 100644 index 0000000000..ba1228b4d4 --- /dev/null +++ b/pmd-eclipse-plugin/plugins/net.sourceforge.pmd.eclipse.plugin/src/net/sourceforge/pmd/eclipse/util/ResourceManager.java @@ -0,0 +1,38 @@ +package net.sourceforge.pmd.eclipse.util; + +import java.util.Map; + +import net.sourceforge.pmd.eclipse.plugin.PMDPlugin; + +import org.eclipse.swt.graphics.Image; + +/** + * + * @author Brian Remedios + */ +public class ResourceManager { + + + private Map imagesByCode; + + private static ResourceManager instance = new ResourceManager(); + + private ResourceManager() {} + + public static Image imageFor(String codePath) { + + if (instance.imagesByCode.containsKey(codePath)) { + return instance.imagesByCode.get(codePath); + } + Image image= PMDPlugin.getImageDescriptor(codePath).createImage(); + instance.imagesByCode.put(codePath, image); + return image; + } + + public static void dispose() { + + for (Image image : instance.imagesByCode.values()) { + image.dispose(); + } + } +}