Bug 221977 [IDE] [RCP] Use of Project Explorer in RCP requires internal IDE class WorkbenchAdapterBuilder
The magic incantation to get an RCP application working with resources and the CommonNavigator (or ResourceNavigator) is to call: WorkbenchAdapterBuilder.registerAdapters() However, this is an internal IDE class. If you don't call it, the CNF will fail in hard to diagnose ways (because there is no UndoRedo handler for example. In my conversations with Paul he is saying that the point of the IDE plugin is to be essentially the UI for resources and nothing more, that all of the "more" stuff is being moved to ui.ide.application. So if that's the case, then we probably just need to move this method to the API and prominently document it's requirement with the CNF/ResourceNavigator. And keep working on moving non-resource stuff out of the ui.ide plugin. And recommend that if you want to use the CNF (with resources) that you need: ui.navigator ui.navigator.resources core.resources ui.ide Alternatively, we can move the classes that are in ui.internal.ide.model to perhaps ui.navigator.resources. And then remove the dependency on ui.ide. I remain confused as to why there are two different plugins required to address the UI requirements for the CNF + resources, ui.navigator.resources and ui.ide. (I understand this might be some kind of legacy requirement).
bundles/org.eclipse.ui.ide.application/src/org/eclipse/ui/internal/ide/application/IDEWorkbenchAdvisor.java
private static final String WORKBENCH_PREFERENCE_CATEGORY_ID = "org.eclipse.ui.preferencePages.Workbench"; 
	/**
	 * The dialog setting key to access the known installed features since the
	 * last time the workbench was run.
	 */
	private static final String INSTALLED_FEATURES = "installedFeatures"; 
	private static IDEWorkbenchAdvisor workbenchAdvisor = null;
	/**
	 * Contains the workspace location if the -showlocation command line
	 * argument is specified, or <code>null</code> if not specified.
	 */
	private String workspaceLocation = null;
	/**
	 * Ordered map of versioned feature ids -> info that are new for this
	 * session; <code>null</code> if uninitialized. Key type:
	 * <code>String</code>, Value type: <code>AboutInfo</code>.
	 */
	private Map newlyAddedBundleGroups;
	/**
	 * Array of <code>AboutInfo</code> for all new installed features that
	 * specify a welcome perspective.
	 */
	private AboutInfo[] welcomePerspectiveInfos = null;
	/**
	 * Helper for managing activites in response to workspace changes.
	 */
	private IDEWorkbenchActivityHelper activityHelper = null;
	/**
	 * Helper for managing work that is performed when the system is otherwise
	 * idle.