Bug 122756 [Viewers] Support for TreePath based content providers
Now that the JFace tree viewer supports the notion of a tree path, it would be benefitial if this information was made available to content providers and label providers. The particular scenario that requires this is team views that include change sets. A view can display multiple change sets and a single model element may be included in multiple change sets. In 3.2, we are using the common navigator framework to allow model providers to display their models in a team operation. Having a tree path based content provider would allow the logical model display to be intermixed with change sets. Without this support, team providers would most likely need to support two views, one which shows resources and change sets and another that shows the effects of the operation on the logical model.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/DecoratingLabelProvider.java
ILabelProvider, IViewerLabelProvider, IColorProvider, IFontProvider {
	
	/**
	 * The UPDATE_LABEL flag indicates that the label should 
	 * be updated for the element passed to the validator.
	 * @deprecated should be removed by 3.2 M5
	 */
	public static final String UPDATE_LABEL = "UPDATE_LABEL";
	
    private ILabelProvider provider;
    private ILabelDecorator decorator;
    
    private ListenerList listeners = new ListenerList();
	private IDecorationContext decorationContext = DecorationContext.DEFAULT_CONTEXT;
    /**
     * Creates a decorating label provider which uses the given label decorator
     * to decorate labels provided by the given label provider.
     *
     * @param provider the nested label provider
     * @param decorator the label decorator, or <code>null</code> if no decorator is to be used initially
     */
    public DecoratingLabelProvider(ILabelProvider provider,
            ILabelDecorator decorator) {
        Assert.isNotNull(provider);
        this.provider = provider;
        this.decorator = decorator;
    }
    /**
     * The <code>DecoratingLabelProvider</code> implementation of this <code>IBaseLabelProvider</code> method
     * adds the listener to both the nested label provider and the label decorator.