Bug 282875 [UI] Allow parts of models to be rendered
We need to change the rendering protocol to allow a 'createGui' to specify the container it should be created under (in SWT-land this would be a Composite). This is necessary to facilitate unit tests and to allow the ad-hoc rendering of chunks of a model within an arbitrary container (i.e. a Dialog or Wizard). In order to do this we'll have to make an API change to the PartFactory's 'createWidget' so that it will get the parent container as a parameter. In order to 'upgrade' an existing PartFactory you would simply replace the code you're currently using to find the correct container with the new parameter's value.
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/Workbench.java
private void processHandlers(MPart<MPart<?>> part) {
		IEclipseContext context = part.getContext();
		if (context != null) {
			EHandlerService hs = (EHandlerService) context.get(EHandlerService.class.getName());
			EList<MHandler> handlers = part.getHandlers();
			for (MHandler handler : handlers) {
				String commandId = handler.getCommand().getId();
				if (handler.getObject() == null) {
					handler.setObject(contributionFactory.create(handler.getURI(), context));
				}
				hs.activateHandler(commandId, handler.getObject());
			}
		}
		EList<MPart<?>> children = part.getChildren();
		for (MPart<?> child : children) {
			processHandlers((MPart<MPart<?>>) child);
		}
	}
	/**
	 * Initialize a part renderer from the extension point.
	 * 
	 * @param registry
	 *            the registry for the EP
	 * @param r
	 *            the created renderer
	 * @param context
	 *            the context for the part factories
	 * @param f
	 *            the IContributionFactory already provided to <code>r</code>
	 */