Bug 127861 [DataBinding] Mark API provisional
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/viewers/DirtyIndicationLabelProvider.java
this.busy = grayColor;
        this.black = foreground;
        
        dirtyListener = new IChangeListener() {
        	public void handleChange(ChangeEvent changeEvent) {
        		if (changeEvent.getChangeType() == ChangeEvent.STALE) {
        			dirtyChanged(changeEvent.getSource());
        		}
        	}
        };
        cp.addDirtyListener(dirtyListener);
    }
    private void dirtyChanged(Object element) {
        fireChangeEvent(Collections.singletonList(element));
    }
    public void updateLabel(ViewerLabel label, Object element) {
        label.setForeground(black);
        toWrap.updateLabel(label, element);
        
        if (cp.isDirty(element)) {
            label.setForeground(busy);
        }
    }
    public void dispose() {
        cp.removeDirtyListener(dirtyListener);
        super.dispose();
        grayColor.dispose();
    }
}