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/JFaceResources.java
private static ImageRegistry imageRegistry = null;
    /**
     * The symbolic font name for the text font 
     * (value <code>"org.eclipse.jface.textfont"</code>).
     */
    public static final String TEXT_FONT = "org.eclipse.jface.textfont"; 
    /**
     * The symbolic font name for the viewer font 
     * (value <code>"org.eclipse.jface.viewerfont"</code>).
     * @deprecated This font is not in use
     */
    public static final String VIEWER_FONT = "org.eclipse.jface.viewerfont"; 
    /**
     * The symbolic font name for the window font 
     * (value <code>"org.eclipse.jface.windowfont"</code>).
     * @deprecated This font is not in use
     */
    public static final String WINDOW_FONT = "org.eclipse.jface.windowfont"; 
    /**
     * Returns the formatted message for the given key in
     * JFace's resource bundle. 
     *
     * @param key the resource name
     * @param args the message arguments
     * @return the string
     */
    public static String format(String key, Object[] args) {
        return MessageFormat.format(getString(key), args);
    }
    /**