Package org.eclipse.ui.themes

## Interface ITheme

    public interface ITheme

A theme is a collection of colors, fonts and supporting data that may be used by plugins to help provide uniform look and feel to their components. The workbench has a default theme (one whos id has the value `IThemeManager.DEFAULT_THEME`) that defines the initial values for a collection of fonts and colors. Other themes may extend and override the default theme to provide new values.

Clients may obtain themes via `IThemeManager.getTheme(String)`.

This interface is not intended to be implemented or extended by clients.

Since:
  3.0
See Also:
  `IWorkbench.getThemeManager()`
Restriction:
  This interface is not intended to be implemented by clients.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addPropertyChangeListener​(IPropertyChangeListener listener)` Adds a property listener to the theme.
`void` `dispose()` Dispose of this theme.
`boolean` `getBoolean​(String key)` Get arbitrary data associated with this theme.
`ColorRegistry` `getColorRegistry()` Return this themes color registry.
`FontRegistry` `getFontRegistry()` Return this themes font registry.
`String` `getId()` Returns the id of this theme.
`int` `getInt​(String key)` Get arbitrary data associated with this theme.
`String` `getLabel()` Returns the label of this theme.
`String` `getString​(String key)` Get arbitrary data associated with this theme.
`Set` `keySet()` Get the set of keys associated with this theme.
`void` `removePropertyChangeListener​(IPropertyChangeListener listener)` Removes a property listener from the theme.

### Method Detail

#### addPropertyChangeListener

    void addPropertyChangeListener​(IPropertyChangeListener listener)

Adds a property listener to the theme. Any events fired by the underlying registries will cause an event to be fired. This event is the same event that was fired by the registry. As such, the "source" attribute of the event will not be this theme, but rather the color or font registry.

Parameters:
  `listener` - the listener to add

#### dispose

    void dispose()

Dispose of this theme. This method is called by the workbench when appropriate and should never be called by a user.

#### getBoolean

    boolean getBoolean​(String key)

Get arbitrary data associated with this theme.

Parameters:
  `key` - the key
Returns:
  the data, or the default value `false` if none exists or if the value cannot be treated as a boolean.

#### getColorRegistry

    ColorRegistry getColorRegistry()

Return this themes color registry.

Returns:
  this themes color registry

#### getFontRegistry

    FontRegistry getFontRegistry()

Return this themes font registry.

Returns:
  this themes font registry

#### getId

    String getId()

Returns the id of this theme.

Returns:
  the id of this theme. Guaranteed not to be `null`.

#### getInt

    int getInt​(String key)

Get arbitrary data associated with this theme.

Parameters:
  `key` - the key
Returns:
  the data, or the default value `0` if none exists or if the value cannot be treated as an integer.

#### getLabel

    String getLabel()

Returns the label of this theme.

Returns:
  the label of this theme. Guaranteed not be `null`.

#### getString

    String getString​(String key)

Get arbitrary data associated with this theme.

Parameters:
  `key` - the key
Returns:
  the data, or `null` if none exists.

#### keySet

    Set keySet()

Get the set of keys associated with this theme.

Returns:
  the Set of keys

#### removePropertyChangeListener

    void removePropertyChangeListener​(IPropertyChangeListener listener)

Removes a property listener from the theme.

Parameters:
  `listener` - the listener to remove