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/CompositePartFactory.java
bindWidget(part, newWidget);
			}
		}
		return newWidget;
	}
	@Override
	public void postProcess(MPart<?> part) {
		super.postProcess(part);
		
		if (part.getPolicy() != null && part.getPolicy().endsWith("Composite")) { 
			Composite composite = (Composite) part.getWidget();
			Control[] children = composite.getChildren();
			GridLayout gl = new GridLayout(
					part.getPolicy().startsWith("Horizontal") ? children.length : 1, false); 
			gl.horizontalSpacing = 0;
			gl.verticalSpacing = 0;
			gl.marginHeight = 0;
			gl.marginWidth = 0;
			composite.setLayout(gl);
			for (int i = 0; i < children.length; i++) {
				Control child = children[i];
				boolean grabV = !(child instanceof ToolBar);
				boolean grabH = !(child instanceof ToolBar);
				child.setLayoutData(new GridData(SWT.FILL, SWT.FILL, grabH,
						grabV));
			}
		}
	}
}