Bug 270989 Context refactoring
Based on discussions over the past weeks, I'm doing a refactoring of the context API. Major changes: - Renamed IComputedValue to IContextFunction - Renamed *Value to *Function - Renamed UIContextScheduler to UISchedulerStrategy - Added concept of ILookupStrategy to delegate lookup of keys that are not yet defined in a given context - Re-implemented OSGi service support using lookup strategy I also fixed a couple of NPE's I found while testing with the e4 photo demo (null realms, etc)
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackModelFactory.java
}
	public void postProcess(MPart<?> part) {
		if (!(part instanceof MStack))
			return;
		CTabFolder ctf = (CTabFolder) part.getWidget();
		CTabItem[] items = ctf.getItems();
		MPart<?> selPart = ((MStack) part).getActiveChild();
		
		if (selPart == null && part.getChildren().size() > 0) {
			((MStack) part).setActiveChild((MItemPart<?>) part.getChildren()
					.get(0));
			
		} else {
			for (int i = 0; i < items.length; i++) {
				MPart<?> me = (MPart<?>) items[i].getData(OWNING_ME);
				if (selPart == me) {
					
					if (items[i].getControl() == null)
						renderer.createGui(selPart);
					ctf.setSelection(items[i]);
				}
			}
		}
	}
	@Override
	public void childAdded(final MPart<?> parentElement, MPart<?> element) {
		super.childAdded(parentElement, element);
		if (element instanceof MItemPart<?>) {
			MItemPart<?> itemPart = (MItemPart<?>) element;
			CTabFolder ctf = (CTabFolder) parentElement.getWidget();