Bug 261852 [context] Separate code into API / SPI / internal
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/WBPartFactory.java
public Object createWidget(Part<?> part) {
		final Widget newWidget;
	
		if (part instanceof WorkbenchWindow) {
			Shell wbwShell = new Shell(Display.getCurrent(), SWT.SHELL_TRIM);
			TrimmedLayout tl = new TrimmedLayout(wbwShell);
			wbwShell.setLayout(tl);
			if (((WorkbenchWindow) part).getName() != null)
				wbwShell.setText(((WorkbenchWindow) part).getName());
	
			newWidget = wbwShell;
			bindWidget(part, newWidget);
			final IHandlerService hs = new PartHandlerService(part);
			UIContext localContext = new UIContext(context, "WorkbenchWindow");
			localContext.set(IHandlerService.class.getName(), hs);
			wbwShell.setData("LOCATOR", localContext);
		} else {
			newWidget = null;
		}
	
		return newWidget;
	}
	@Override
	public <P extends Part<?>> void processContents(Part<P> me) {
		if (me instanceof WorkbenchWindow) {
			WorkbenchWindow wbwModel = (WorkbenchWindow) me;
			Shell wbwShell = (Shell) wbwModel.getWidget();
			TrimmedLayout tl = (TrimmedLayout) wbwShell.getLayout();