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/src/org/eclipse/ui/ide/IDE.java
* component editor is available (e.g. OLE editor on Win32 platforms).</li>
	 * <li>The operating system is consulted to determine if an external editor
	 * is available.</li>
	 * </ol>
	 * </p>
	 * 
	 * @param file
	 *            the file
	 * @return an editor descriptor, appropriate for opening the file
	 * @throws PartInitException
	 *             if no editor can be found
	 */
	public static IEditorDescriptor getEditorDescriptor(IFile file)
			throws PartInitException {
		return getEditorDescriptor(file, true);
	}
	/**
	 * Returns an editor descriptor appropriate for opening the given file
	 * resource.
	 * <p>
	 * The editor descriptor is determined using a multi-step process. This
	 * method will attempt to resolve the editor based on content-type bindings
	 * as well as traditional name/extension bindings if
	 * <code>determineContentType</code>is <code>true</code>.
	 * </p>
	 * <ol>
	 * <li>The file is consulted for a persistent property named
	 * <code>IDE.EDITOR_KEY</code> containing the preferred editor id to be
	 * used.</li>
	 * <li>The workbench editor registry is consulted to determine if an editor