Class DeviceResourceDescriptor

  • Direct Known Subclasses:
    ColorDescriptor, FontDescriptor, ImageDescriptor

    public abstract class DeviceResourceDescriptor
    extends java.lang.Object
    Instances of this class can allocate and dispose SWT resources. Each instance describes a particular resource (such as a Color, Font, or Image) and can create and destroy that resource on demand. DeviceResourceDescriptors are managed by a ResourceRegistry.

    Note: It is recommended that subclasses implement #equals and #hashCode, so that clients, like decoration managers, can recognize when they have two equal descriptors at hand, e.g. decorating an identical object.

    Since:
    3.1
    See Also:
    ResourceManager
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      abstract java.lang.Object createResource​(Device device)
      Creates the resource described by this descriptor
      abstract void destroyResource​(java.lang.Object previouslyCreatedObject)
      Undoes everything that was done by a previous call to create(...), given the object that was returned by create(...).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DeviceResourceDescriptor

        public DeviceResourceDescriptor()
        default constructor with shouldBeCached=false
      • DeviceResourceDescriptor

        protected DeviceResourceDescriptor​(boolean shouldBeCached)
        Parameters:
        shouldBeCached - Indicates if the resource instance described by the descriptor should to be kept by ResourceManager even if all references to the resource are lost (due to ResourceManager.destroy(DeviceResourceDescriptor)).
        Should return true for resources that are costly to create (for example by involving I/O Operation). Has only an effect if caching is enabled (see org.eclipse.jface.resource.JFaceResources#cacheSize). Caching relies on Object.equals(Object) and Object.hashCode(). For equal DeviceResourceDescriptors the same Resource instance is returned by the ResourceManager instance return by JFaceResources.getResources(org.eclipse.swt.widgets.Display) as long as the cache is big enough to cache all resources.
        Instances which equal (in terms of Object.equals(Object)) must have the same shouldBeCached mode.
        Since:
        3.24
        See Also:
        LazyResourceManager
    • Method Detail

      • createResource

        public abstract java.lang.Object createResource​(Device device)
        Creates the resource described by this descriptor
        Parameters:
        device - the Device on which to allocate the resource
        Returns:
        the newly allocated resource (not null)
        Throws:
        DeviceResourceException - if unable to allocate the resource
        Since:
        3.1
      • destroyResource

        public abstract void destroyResource​(java.lang.Object previouslyCreatedObject)
        Undoes everything that was done by a previous call to create(...), given the object that was returned by create(...).
        Parameters:
        previouslyCreatedObject - an object that was returned by an equal descriptor in a previous call to createResource(...).
        Since:
        3.1