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
* @return a TextLayout instance
	 */
	private LabelPresentationInfo getLabelPresentationInfo(Event event,
			Object element) {
		
		
		LabelPresentationInfo labelInfo = (LabelPresentationInfo) event.item
				.getData(KEY_TEXT_LAYOUT + event.index);
		if (labelInfo == null) {
			labelInfo = getLabelPresentationInfo(element);
			event.item.setData(KEY_TEXT_LAYOUT + event.index, labelInfo);
		}
		return labelInfo;
	}
	/**
	 * Returns a {@link TextLayout} instance for the given
	 * {@link LabelPresentationInfo}. The text layout instance is managed by
	 * the label provider. Caller of the method must not dispose the text
	 * layout.
	 * 
	 * @param diplay
	 *            the current display
	 * @param labelPresentation
	 *            the viewerLabel the label info
	 * 
	 * @param applyColors
	 *            if set, create colors in the result
	 * @param element
	 *            the model element
	 * @return a TextLayout instance