Class ColorRegistry


@NoExtend public class ColorRegistry extends ResourceRegistry
A color registry maintains a mapping between symbolic color names and SWT Colors.

A color registry owns all of the Color objects registered with it, and automatically disposes of them when the SWT Display that creates the Colors 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
  • 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:
    • 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