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/renderers/PartRenderer.java
public static final String FACTORY = "partFactory"; 
	
	private AdapterImpl visibilityListener = new AdapterImpl() {
		@Override
		public void notifyChanged(Notification msg) {
			if (ApplicationPackage.Literals.MPART__VISIBLE.equals(msg.getFeature())) {
				MPart<?> changedPart = (MPart<?>) msg.getNotifier();
				
				MPart<?> parent = changedPart.getParent();
				PartFactory parentFactory = parent != null ? getFactoryFor(parent) : null;
				if (parentFactory == null)
					return;
				if (changedPart.isVisible()) {
					Activator.trace(Policy.DEBUG_RENDERER, "visible -> true", null); 
					
					createGui(changedPart);
				} else {
					Activator.trace(Policy.DEBUG_RENDERER, "visible -> false", null); 
					
					removeGui(changedPart);
				}
			}
		}
	};
	private AdapterImpl childrenListener = new AdapterImpl() {
		@Override
		public void notifyChanged(Notification msg) {
			if (ApplicationPackage.Literals.MPART__CHILDREN.equals(msg.getFeature())) {
				MPart<?> changedPart = (MPart<?>) msg.getNotifier();
				PartFactory factory = getFactoryFor(changedPart);