Package org.eclipse.jface.resource

# Class ColorRegistry

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.jface.resource.ResourceRegistry
org.eclipse.jface.resource.ColorRegistry

public class ColorRegistry extends ResourceRegistry
A color registry maintains a mapping between symbolic color names and SWT `Color`s.

A color registry owns all of the `Color` objects registered with it, and automatically disposes of them when the SWT Display that creates the `Color`s is disposed. Because of this, clients do not need to (indeed, must not attempt to) dispose of `Color` objects themselves.

Methods are provided for registering listeners that will be kept apprised of changes to list of registed colors.

Clients may instantiate this class (it was not designed to be subclassed).

Since:
  3.0
Restriction:
  This class is not intended to be subclassed by clients.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Display`
`display`
This registries `Display`.
`protected Runnable`
`displayRunnable`
Runnable that cleans up the manager on disposal of the display.

## Constructor Summary

Constructors
Constructor
Description
`ColorRegistry()`
Create a new instance of the receiver that is hooked to the current display.
`ColorRegistry(Display display)`
Create a new instance of the receiver.
`ColorRegistry(Display display, boolean cleanOnDisplayDisposal)`
Create a new instance of the receiver.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`clearCaches()`
Disposes all currently allocated resources.
`Color`
`get(String symbolicName)`
Returns the `color` associated with the given symbolic color name, or `null` if no such definition exists.
`ColorDescriptor`
`getColorDescriptor(String symbolicName)`
Returns the color descriptor associated with the given symbolic color name.
`ColorDescriptor`
`getColorDescriptor(String symbolicName, ColorDescriptor defaultValue)`
Returns the color descriptor associated with the given symbolic color name.
`Set<String>`
`getKeySet()`
`RGB`
`getRGB(String symbolicName)`
Returns the color data associated with the given symbolic color name.
`boolean`
`hasValueFor(String colorKey)`
Return whether or not the receiver has a value for the supplied key.
`void`
`put(String symbolicName, RGB colorData)`
Adds (or replaces) a color to this color registry under the given symbolic name.

### Methods inherited from class org.eclipse.jface.resource.ResourceRegistry

`addListener, fireMappingChanged, removeListener`

### Methods inherited from class org.eclipse.core.commands.common.EventManager

`addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### display

protected Display display
This registries `Display`. All colors will be allocated using it.

### displayRunnable

protected Runnable displayRunnable
Runnable that cleans up the manager on disposal of the display.

## Constructor Details

### ColorRegistry

public ColorRegistry()
Create a new instance of the receiver that is hooked to the current display.

See Also:
  - `Display.getCurrent()`

### ColorRegistry

public ColorRegistry(Display display)
Create a new instance of the receiver.

Parameters:
  `display` - the `Display` to hook into.

### ColorRegistry

public ColorRegistry(Display display, boolean cleanOnDisplayDisposal)
Create a new instance of the receiver.

Parameters:
  `display` - the `Display` to hook into
  `cleanOnDisplayDisposal` - whether all colors allocated by this `ColorRegistry` should be disposed when the display is disposed
Since:
  3.1

## Method Details

### get

public Color get(String symbolicName)
Returns the `color` associated with the given symbolic color name, or `null` if no such definition exists.

Parameters:
  `symbolicName` - symbolic color name
Returns:
  the `Color` or `null`

### getKeySet

public Set<String> getKeySet()

Specified by:
  `getKeySet` in class `ResourceRegistry`
Returns:
  the set of keys this manager knows about. This collection should be immutable.

### getRGB

public RGB getRGB(String symbolicName)
Returns the color data associated with the given symbolic color name.

Parameters:
  `symbolicName` - symbolic color name.
Returns:
  the `RGB` data, or `null` if the symbolic name is not valid.

### getColorDescriptor

public ColorDescriptor getColorDescriptor(String symbolicName)
Returns the color descriptor associated with the given symbolic color name. As of 3.4 if this color is not defined then an unspecified color is returned. Users that wish to ensure a reasonable default value should use `getColorDescriptor(String, ColorDescriptor)` instead.

Parameters:
  `symbolicName` - symbolic color name
Returns:
  the color descriptor associated with the given symbolic color name or an unspecified sentinel.
Since:
  3.1

### getColorDescriptor

public ColorDescriptor getColorDescriptor(String symbolicName, ColorDescriptor defaultValue)
Returns the color descriptor associated with the given symbolic color name. If this name does not exist within the registry the supplied default value will be used.

Parameters:
  `symbolicName` - symbolic color name
  `defaultValue` - return value if symbolic color name is unknown
Returns:
  the color descriptor associated with the given symbolic color name or the default
Since:
  3.4

### clearCaches

protected void clearCaches()
Description copied from class: `ResourceRegistry`
Disposes all currently allocated resources.

Specified by:
  `clearCaches` in class `ResourceRegistry`

### hasValueFor

public boolean hasValueFor(String colorKey)
Description copied from class: `ResourceRegistry`
Return whether or not the receiver has a value for the supplied key.

Specified by:
  `hasValueFor` in class `ResourceRegistry`
Parameters:
  `colorKey` - the key
Returns:
  `true` if there is a value for this key

### put

public void put(String symbolicName, RGB colorData)
Adds (or replaces) a color to this color registry under the given symbolic name.

A property change event is reported whenever the mapping from a symbolic name to a color changes. The source of the event is this registry; the property name is the symbolic color name.

Parameters:
  `symbolicName` - the symbolic color name
  `colorData` - an `RGB` object