Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/DirtyIndicationLabelProvider.java
private final UpdatableTreeContentProvider cp;
    private final Color busy;
    private final Color black;
    private IChangeListener dirtyListener;
    private Color grayColor;
    
    private IViewerLabelProvider toWrap;
    public DirtyIndicationLabelProvider(Control context, UpdatableTreeContentProvider cp, IViewerLabelProvider toConvert) {
        this(cp, context.getDisplay(), toConvert, context.getForeground(), context.getBackground());
    }
    
    /**
     * Creates a label provider that decorates an INotifyingLabelProvider with a busy indicator.
     *  
     * @param cp ContentProvider that will be used to determine the busy state. Elements are considered
     * busy if and only if they are being fetched by this content provider.
     * @param display display
     * @param convert label provider to decorate
     * @param foreground default foreground color
     * @param background table background color
     */
    public DirtyIndicationLabelProvider(UpdatableTreeContentProvider cp, Display display, IViewerLabelProvider convert, Color foreground, Color background) {
        super();
        toWrap = convert; 
        this.cp = cp;
        
        RGB fg = foreground.getRGB();
        RGB bg = background.getRGB();
        RGB grayed = SWTUtil.mix(fg, bg, 0.5);
        grayColor = new Color(display, grayed);