Bug 243824 [CommonNavigator] lacks table / tree-table support
SafeDelegateCommonLabelProvider does not allow ITableLabelProvider instances to be used or delegated to. To attempt to use an ITableLabelProvider will have no direct result at all. Even customizing the top level label provider used in the common navigator, making that one an ITableLabelProvider, does nothing because NavigatorContentExtension wraps the instantiated user label provider in a SafeDelegateCommonLabelProvider, which implements many interfaces but not ITableLabelProvider. The solution is to apply this patch to SafeDelegateCommonLabelProvider. At that point, an adopter can customize his Common Viewer's top level label provider to pass things down appropriately. The patch needed is only to SafeDelegateCommonLabelProvider
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceLabelProvider.java
* {@inheritDoc}
	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
	 */
	public void removeListener(ILabelProviderListener aListener) {
		removeListenerObject(aListener);
	}
	/**
	 * <p>
	 * Dispose of the content service, if it was created and not supplied.
	 * </p>
	 * <p>
	 * <b>If a client uses this class outside of the framework of {@link CommonViewer}, this method
	 * must be called when finished. </b>
	 * </p>
	 * 
	 * {@inheritDoc}
	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
	 */
	public void dispose() {
		if (isContentServiceSelfManaged) {
			contentService.dispose();
		}
	}
	
	/**
     * Fires a label provider changed event to all registered listeners
     * Only listeners registered at the time this method is called are notified.
     *
     * @param event a label provider changed event
     *