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.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/TrimPartFactory.java
@Override
	public <P extends MPart<?>> void processContents(MPart<P> me) {
		if (!(me instanceof MTrimmedPart<?>))
			return;
		MTrimmedPart<?> trimModel = (MTrimmedPart<?>) me;
		
		
		Composite clientArea = (Composite) me.getWidget();
		Composite trimmedComp = clientArea.getParent();
		TrimmedPartLayout layout = (TrimmedPartLayout) trimmedComp.getLayout();
		
		if (hasVisibleChildren(trimModel.getTopTrim())) {
			layout.top = createTrim(trimmedComp, SWT.HORIZONTAL, trimModel,
					trimModel.getTopTrim());
		}
		if (hasVisibleChildren(trimModel.getBottomTrim())) {
			layout.bottom = createTrim(trimmedComp, SWT.HORIZONTAL, trimModel,
					trimModel.getBottomTrim());
		}
		if (hasVisibleChildren(trimModel.getLeftTrim())) {
			layout.left = createTrim(trimmedComp, SWT.VERTICAL, trimModel,
					trimModel.getLeftTrim());
		}
		if (hasVisibleChildren(trimModel.getRightTrim())) {
			layout.right = createTrim(trimmedComp, SWT.VERTICAL, trimModel,
					trimModel.getRightTrim());
		}
		
		super.processContents(me);
	}