public final class LocalResourceManager extends ResourceManager
A nested registry can be used to manage the resources for, say, a dialog box.
Constructor and Description |
---|
LocalResourceManager(ResourceManager parentRegistry)
Creates a local registry that delegates to the given global registry
for all resource allocation and deallocation.
|
LocalResourceManager(ResourceManager parentRegistry,
Control owner)
Creates a local registry that wraps the given global registry.
|
Modifier and Type | Method and Description |
---|---|
protected Object |
allocate(DeviceResourceDescriptor descriptor)
Called the first time a resource is requested.
|
Object |
create(DeviceResourceDescriptor descriptor)
Returns the resource described by the given descriptor.
|
protected void |
deallocate(Object resource,
DeviceResourceDescriptor descriptor)
Called the last time a resource is dereferenced.
|
void |
destroy(DeviceResourceDescriptor descriptor)
Deallocates a resource previously allocated by
ResourceManager.create(DeviceResourceDescriptor) . |
void |
dispose()
Deallocates any resources allocated by this registry that have not yet been
deallocated.
|
Object |
find(DeviceResourceDescriptor descriptor)
Returns a previously allocated resource associated with the given descriptor, or
null if none exists yet.
|
protected Image |
getDefaultImage()
Returns the default image that will be returned in the event that the intended
image is missing.
|
Device |
getDevice()
Returns the Device for which this ResourceManager will create resources
|
cancelDisposeExec, createColor, createColor, createFont, createImage, createImageWithDefault, destroyColor, destroyColor, destroyFont, destroyImage, disposeExec, get
public LocalResourceManager(ResourceManager parentRegistry)
parentRegistry
- global registrypublic LocalResourceManager(ResourceManager parentRegistry, Control owner)
parentRegistry
- global registry that handles resource allocationowner
- control whose disposal will trigger cleanup of everything
in the registry.public Device getDevice()
ResourceManager
getDevice
in class ResourceManager
protected Object allocate(DeviceResourceDescriptor descriptor) throws DeviceResourceException
descriptor
- identifier for the resource to allocateDeviceResourceException
- Thrown when allocation of an SWT device resource failsprotected void deallocate(Object resource, DeviceResourceDescriptor descriptor)
resource
- resource being deallocateddescriptor
- identifier for the resourceprotected Image getDefaultImage()
ResourceManager
getDefaultImage
in class ResourceManager
public final Object create(DeviceResourceDescriptor descriptor) throws DeviceResourceException
ResourceManager
ResourceManager.destroy(DeviceResourceDescriptor)
.
If the resource is intended to live for entire lifetime of the resource manager,
a subsequent call to ResourceManager.destroy(DeviceResourceDescriptor)
may be omitted and the
resource will be cleaned up when the resource manager is disposed. This pattern
is useful for short-lived LocalResourceManager
s, but should never be used
with the global resource manager since doing so effectively leaks the resource.
The resources returned from this method are reference counted and may be shared
internally with other resource managers. They should never be disposed outside of the
ResourceManager framework, or it will cause exceptions in other code that shares
them. For example, never call Resource.dispose()
on anything returned from this method.
Callers may safely downcast the result to the resource type associated with the descriptor. For example, when given an ImageDescriptor, the return value of this method will always be an Image.
create
in class ResourceManager
descriptor
- descriptor for the resource to allocateDeviceResourceException
- if unable to allocate the resourcepublic final void destroy(DeviceResourceDescriptor descriptor)
ResourceManager
ResourceManager.create(DeviceResourceDescriptor)
.
Descriptors are compared by equality, not identity. If the same resource was
created multiple times, this may decrement a reference count rather than
disposing the actual resource.destroy
in class ResourceManager
descriptor
- identifier for the resourcepublic void dispose()
dispose
in class ResourceManager
public Object find(DeviceResourceDescriptor descriptor)
ResourceManager
find
in class ResourceManager
descriptor
- descriptor to find
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.