Package org.eclipse.jface.resource
Class DeviceResourceDescriptor
- java.lang.Object
-
- org.eclipse.jface.resource.DeviceResourceDescriptor
-
- Direct Known Subclasses:
ColorDescriptor,FontDescriptor,ImageDescriptor
public abstract class DeviceResourceDescriptor extends 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
#equalsand#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
-
-
Constructor Summary
Constructors Modifier Constructor Description DeviceResourceDescriptor()default constructor with shouldBeCached=falseprotectedDeviceResourceDescriptor(boolean shouldBeCached)
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description abstract ObjectcreateResource(Device device)Creates the resource described by this descriptorabstract voiddestroyResource(Object previouslyCreatedObject)Undoes everything that was done by a previous call to create(...), given the object that was returned by create(...).
-
-
-
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 byResourceManagereven if all references to the resource are lost (due toResourceManager.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 onObject.equals(Object)andObject.hashCode(). For equal DeviceResourceDescriptors the same Resource instance is returned by theResourceManagerinstance return byJFaceResources.getResources(org.eclipse.swt.widgets.Display)as long as the cache is big enough to cache all resources.
Instances which equal (in terms ofObject.equals(Object)) must have the same shouldBeCached mode.- Since:
- 3.24
- See Also:
LazyResourceManager
-
-
Method Detail
-
createResource
public abstract 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(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
-
-