Bug 218127 [CommonNavigator] Common Navigator inherited viewer bindings
This enhancement describes the ability for common navigator viewer instances to "inherit" the action and content bindings from other viewers.
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/NavigatorViewerDescriptorManager.java
public NavigatorViewerDescriptor getNavigatorViewerDescriptor(
			String aViewerId) {
		NavigatorViewerDescriptor viewerDescriptor = (NavigatorViewerDescriptor) viewerDescriptors
				.get(aViewerId);
		if (viewerDescriptor != null) {
			return viewerDescriptor;
		}
		synchronized (viewerDescriptors) {
			viewerDescriptor = (NavigatorViewerDescriptor) viewerDescriptors
					.get(aViewerId);
			if (viewerDescriptor == null) {
				viewerDescriptor = new NavigatorViewerDescriptor(aViewerId);
				viewerDescriptors.put(viewerDescriptor.getViewerId(),
						viewerDescriptor);
			}
		}
		return viewerDescriptor;
	}
	private class NavigatorViewerDescriptorRegistry extends RegistryReader
			implements IViewerExtPtConstants {
		protected NavigatorViewerDescriptorRegistry() {
			super(NavigatorPlugin.PLUGIN_ID, TAG_VIEWER);
		}
		protected boolean readElement(IConfigurationElement element) {
			if (TAG_VIEWER.equals(element.getName())) {
				String viewerId = element.getAttribute(ATT_VIEWER_ID);
				NavigatorViewerDescriptor descriptor = getNavigatorViewerDescriptor(viewerId);
				String attPopupMenuId = element.getAttribute(ATT_POPUP_MENU_ID);
				IConfigurationElement[] tagPopupMenu = element
						.getChildren(TAG_POPUP_MENU);