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
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.internal.navigator.extensions.NavigatorContentExtension;
import org.eclipse.ui.navigator.CommonViewer;
import org.eclipse.ui.navigator.INavigatorContentDescriptor;
import org.eclipse.ui.navigator.INavigatorContentService;
/**
 * <p>
 * Provides relevant labels based on the associated
 * {@link INavigatorContentService}for the contents of a
 * TreeViewer .
 * <p>
 * 
 * <p>
 * Except for the dependency on
 * {@link INavigatorContentService}, this class has no
 * dependencies on the rest of the Common Navigator framework. Tree viewers that would like to use
 * the extensions defined by the Common Navigator, without using the actual view part or other
 * pieces of functionality (filters, sorting, etc) may choose to use this class, in effect using an
 * extensible label provider.
 * </p>
 * <p>
 * 
 * @since 3.2
 * 
 * @see org.eclipse.ui.internal.navigator.NavigatorContentService
 * @see org.eclipse.ui.internal.navigator.NavigatorContentServiceContentProvider
 */
public class NavigatorContentServiceLabelProvider extends EventManager