Bug 213166 [Viewers] Problems with OwnerDrawLabelProvider.setUpOwnerDraw
3.4 M4 To set up the owner draw callbacks for a viewer OwnerDrawLabelProvider.setUpOwnerDraw is offered. The problem of this is: a. there's no way to uninstall the callbacks. In our views we want to allow to enable and disable owner draw in the preferences b. from an API client perspective, it would be nicer if the label provider could install itself when installed. A good solution would be to add more life cycle to a label provider. CellLabelProvider.initialize(ColumnViewer, int column) There's already ILableProvider.dispose when a label provider is removed from a viewer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/SimpleStyledCellLabelProvider.java
* A {@link SimpleStyledCellLabelProvider} supports styled labels by using owner
 * draw by preserving native viewer behavior:
 * <ul>
 * <li>similar image and label positioning</li>
 * <li>native drawing of focus and selection</li>
 * </ul>
 * 
 * 
 * <p>
 * For providing the label's styles, create a subclass and overwrite
 * {@link SimpleStyledCellLabelProvider#getLabelPresentationInfo(Object)} to
 * return all information needed to render a element.
 * </p>
 * <p>
 * The {@link SimpleStyledCellLabelProvider} will ignore all font settings on
 * {@link StyleRange}. Different fonts would make labels wider, and the native
 * selection drawing could not be reused.
 * </p>
 * 
 * <p>
 * To set up styled labels for your viewer's control, you must call
 * {@link OwnerDrawLabelProvider#setUpOwnerDraw(ColumnViewer)}.
 * </p>
 * 
 * <p><strong>NOTE:</strong> This API is experimental and may be deleted or
 * changed before 3.4 is released.</p>
 * 
 * @since 3.4
 */
public abstract class SimpleStyledCellLabelProvider extends