Bug 307577 [UI] Allow the CSS engine access to the 'tag' info
We need to define multiple CSS 'class' names to allow clients to style against tag information (such as "View", "ViewStack"...). We will also add the model element's type ("MWindow", "MPart"...) This will allow for example style sheets that have all stacks use a particular tab style but also allow it to differentiate the style of a "PartStack" from that of an "EditorStack".
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java
MUIElement[] plist = parts.toArray(new MUIElement[parts.size()]);
			for (int i = 0; i < plist.length; i++) {
				MUIElement childME = plist[i];
				IPresentationEngine renderer = (IPresentationEngine) context
						.get(IPresentationEngine.class.getName());
				renderer.createGui(childME);
			}
		}
	}
	public void bindWidget(MUIElement me, Object widget) {
		me.setWidget(widget);
		((Widget) widget).setData(OWNING_ME, me);
		me.setRenderer(this);
		final IStylingEngine engine = (IStylingEngine) getContext(me).get(
				IStylingEngine.SERVICE_NAME);
		engine.setId(widget, me.getId()); 
		Widget swtWidget = (Widget) widget;
		swtWidget.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent e) {
				MUIElement element = (MUIElement) e.widget.getData(OWNING_ME);
				if (element != null)
					unbindWidget(element);
			}
		});
	}
	public Object unbindWidget(MUIElement me) {
		Widget widget = (Widget) me.getWidget();
		if (widget != null) {
			me.setWidget(null);
			if (!widget.isDisposed())