Class 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 Details

    • 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 Details

    • 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