Bug 79909 [JFace] Localized resource registries for JFace
Please provide improved JFace support for managing SWT resources, with the following properties: - A registry can allocate and deallocate SWT resources given a descriptor - Resources are reference-counted and shared, allowing different objects with equivalent descriptors to share resources. - Everything in the registry can be deallocated with one function call - The registry should support an open-ended set of resources (and should initially support, at minimum, Images, Fonts, Colors) - It should be possible to create a "local registry" that behaves like a regular registry but actually shares its resources with a global registry. For example, the workbench could offer a local registry as a service to views and editors. This would allow views and editors to safely allocate and deallocate SWT resources without any chance of leaking.
bundles/org.eclipse.jface/src/org/eclipse/jface/resource/ImageRegistry.java
/**
     * Table of known images keyed by symbolic image name
     * (key type: <code>String</code>, 
     *  value type: <code>org.eclipse.swt.graphics.Image</code>
     *  or <code>ImageDescriptor</code>).
     */
    private Map table = null;
    /**
     * display used when getting images
     */
    private Display display;
    /**
     * Creates an empty image registry.
     * <p>
     * There must be an SWT Display created in the current 
     * thread before calling this method.
     * </p>
     */
    public ImageRegistry() {
        this(Display.getCurrent());
    }
    /**
     * Creates an empty image registry.
     * 
     * @param display this <code>Display</code> must not be