Package org.eclipse.jface.viewers

## Class DecoratingLabelProvider

- java.lang.Object
- - org.eclipse.core.commands.common.EventManager
  - - org.eclipse.jface.viewers.BaseLabelProvider
    - - org.eclipse.jface.viewers.LabelProvider
      - - org.eclipse.jface.viewers.DecoratingLabelProvider

All Implemented Interfaces:
  `IBaseLabelProvider`, `IColorProvider`, `IFontProvider`, `ILabelProvider`, `ITreePathLabelProvider`, `IViewerLabelProvider`

    public class DecoratingLabelProvider
    extends LabelProvider
    implements IViewerLabelProvider, IColorProvider, IFontProvider, ITreePathLabelProvider

A decorating label provider is a label provider which combines a nested label provider and an optional decorator. The decorator decorates the label text, image, font and colors provided by the nested label provider.

### Constructor Summary

Constructors
`DecoratingLabelProvider​(ILabelProvider provider, ILabelDecorator decorator)` Creates a decorating label provider which uses the given label decorator to decorate labels provided by the given label provider.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addListener​(ILabelProviderListener listener)` The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method adds the listener to both the nested label provider and the label decorator.
`void` `dispose()` The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method disposes both the nested label provider and the label decorator.
`Color` `getBackground​(Object element)` Provides a background color for the given element.
`IDecorationContext` `getDecorationContext()` Return the decoration context associated with this label provider.
`Font` `getFont​(Object element)` Provides a font for the given element.
`Color` `getForeground​(Object element)` Provides a foreground color for the given element.
`Image` `getImage​(Object element)` The `DecoratingLabelProvider` implementation of this `ILabelProvider` method returns the image provided by the nested label provider's `getImage` method, decorated with the decoration provided by the label decorator's `decorateImage` method.
`ILabelDecorator` `getLabelDecorator()` Returns the label decorator, or `null` if none has been set.
`ILabelProvider` `getLabelProvider()` Returns the nested label provider.
`String` `getText​(Object element)` The `DecoratingLabelProvider` implementation of this `ILabelProvider` method returns the text label provided by the nested label provider's `getText` method, decorated with the decoration provided by the label decorator's `decorateText` method.
`boolean` `isLabelProperty​(Object element, String property)` The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method returns `true` if the corresponding method on the nested label provider returns `true` or if the corresponding method on the decorator returns `true`.
`void` `removeListener​(ILabelProviderListener listener)` The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method removes the listener from both the nested label provider and the label decorator.
`void` `setDecorationContext​(IDecorationContext decorationContext)` Set the decoration context that will be based to the decorator for this label provider if that decorator implements `LabelDecorator`.
`void` `setLabelDecorator​(ILabelDecorator decorator)` Sets the label decorator.
`protected void` `updateForDecorationReady​(ViewerLabel settings, Object element)` Decoration is ready.
`void` `updateLabel​(ViewerLabel settings, Object element)` Updates the label for the given element.
`void` `updateLabel​(ViewerLabel settings, TreePath elementPath)` Updates the label for the given element.

### Methods inherited from class org.eclipse.jface.viewers.LabelProvider

`createImageProvider, createTextImageProvider, createTextProvider`

### Methods inherited from class org.eclipse.jface.viewers.BaseLabelProvider

`fireLabelProviderChanged`

### 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`

### Constructor Detail

#### DecoratingLabelProvider

    public DecoratingLabelProvider​(ILabelProvider provider,
                                   ILabelDecorator decorator)

Creates a decorating label provider which uses the given label decorator to decorate labels provided by the given label provider.

Parameters:
  `provider` - the nested label provider
  `decorator` - the label decorator, or `null` if no decorator is to be used initially

### Method Detail

#### addListener

    public void addListener​(ILabelProviderListener listener)

The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method adds the listener to both the nested label provider and the label decorator.

Specified by:
  `addListener` in interface `IBaseLabelProvider`
Overrides:
  `addListener` in class `BaseLabelProvider`
Parameters:
  `listener` - a label provider listener

#### dispose

    public void dispose()

The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method disposes both the nested label provider and the label decorator.

Specified by:
  `dispose` in interface `IBaseLabelProvider`
Overrides:
  `dispose` in class `BaseLabelProvider`

#### getImage

    public Image getImage​(Object element)

The `DecoratingLabelProvider` implementation of this `ILabelProvider` method returns the image provided by the nested label provider's `getImage` method, decorated with the decoration provided by the label decorator's `decorateImage` method.

Specified by:
  `getImage` in interface `ILabelProvider`
Overrides:
  `getImage` in class `LabelProvider`
Parameters:
  `element` - the element for which to provide the label image
Returns:
  the image used to label the element, or `null` if there is no image for the given object

#### getLabelDecorator

    public ILabelDecorator getLabelDecorator()

Returns the label decorator, or `null` if none has been set.

Returns:
  the label decorator, or `null` if none has been set.

#### getLabelProvider

    public ILabelProvider getLabelProvider()

Returns the nested label provider.

Returns:
  the nested label provider

#### getText

    public String getText​(Object element)

The `DecoratingLabelProvider` implementation of this `ILabelProvider` method returns the text label provided by the nested label provider's `getText` method, decorated with the decoration provided by the label decorator's `decorateText` method.

Specified by:
  `getText` in interface `ILabelProvider`
Overrides:
  `getText` in class `LabelProvider`
Parameters:
  `element` - the element for which to provide the label text
Returns:
  the text string used to label the element, or `null` if there is no text label for the given object

#### isLabelProperty

    public boolean isLabelProperty​(Object element,
                                   String property)

The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method returns `true` if the corresponding method on the nested label provider returns `true` or if the corresponding method on the decorator returns `true`.

Specified by:
  `isLabelProperty` in interface `IBaseLabelProvider`
Overrides:
  `isLabelProperty` in class `BaseLabelProvider`
Parameters:
  `element` - the element
  `property` - the property
Returns:
  `true` if the label would be affected, and `false` if it would be unaffected

#### removeListener

    public void removeListener​(ILabelProviderListener listener)

The `DecoratingLabelProvider` implementation of this `IBaseLabelProvider` method removes the listener from both the nested label provider and the label decorator.

Specified by:
  `removeListener` in interface `IBaseLabelProvider`
Overrides:
  `removeListener` in class `BaseLabelProvider`
Parameters:
  `listener` - a label provider listener

#### setLabelDecorator

    public void setLabelDecorator​(ILabelDecorator decorator)

Sets the label decorator. Removes all known listeners from the old decorator, and adds all known listeners to the new decorator. The old decorator is not disposed. Fires a label provider changed event indicating that all labels should be updated. Has no effect if the given decorator is identical to the current one.

Parameters:
  `decorator` - the label decorator, or `null` if no decorations are to be applied

#### updateLabel

    public void updateLabel​(ViewerLabel settings,
                            Object element)

Description copied from interface: `IViewerLabelProvider`
Updates the label for the given element.

Specified by:
  `updateLabel` in interface `IViewerLabelProvider`
Parameters:
  `settings` - the label to update
  `element` - the element

#### updateForDecorationReady

    protected void updateForDecorationReady​(ViewerLabel settings,
                                            Object element)

Decoration is ready. Update anything else for the settings.

Parameters:
  `settings` - The object collecting the settings.
  `element` - The Object being decorated.
Since:
  3.1

#### getBackground

    public Color getBackground​(Object element)

Description copied from interface: `IColorProvider`
Provides a background color for the given element.

Specified by:
  `getBackground` in interface `IColorProvider`
Parameters:
  `element` - the element
Returns:
  the background color for the element, or `null` to use the default background color

#### getFont

    public Font getFont​(Object element)

Description copied from interface: `IFontProvider`
Provides a font for the given element.

Specified by:
  `getFont` in interface `IFontProvider`
Parameters:
  `element` - the element
Returns:
  the font for the element, or `null` to use the default font

#### getForeground

    public Color getForeground​(Object element)

Description copied from interface: `IColorProvider`
Provides a foreground color for the given element.

Specified by:
  `getForeground` in interface `IColorProvider`
Parameters:
  `element` - the element
Returns:
  the foreground color for the element, or `null` to use the default foreground color

#### getDecorationContext

    public IDecorationContext getDecorationContext()

Return the decoration context associated with this label provider. It will be passed to the decorator if the decorator is an instance of `LabelDecorator`.

Returns:
  the decoration context associated with this label provider
Since:
  3.2

#### setDecorationContext

    public void setDecorationContext​(IDecorationContext decorationContext)

Set the decoration context that will be based to the decorator for this label provider if that decorator implements `LabelDecorator`.

Parameters:
  `decorationContext` - the decoration context.
Since:
  3.2

#### updateLabel

    public void updateLabel​(ViewerLabel settings,
                            TreePath elementPath)

Description copied from interface: `ITreePathLabelProvider`
Updates the label for the given element.

Specified by:
  `updateLabel` in interface `ITreePathLabelProvider`
Parameters:
  `settings` - the label to update
  `elementPath` - the path of the element being decorated