Bug 305707 add a way to contribute object providers to dependency injection
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/PartServiceImpl.java
private EventHandler selectedHandler = new EventHandler() {
		public void handleEvent(Event event) {
			
			if (!listeners.isEmpty()) {
				Object oldSelected = event.getProperty(UIEvents.EventTags.OLD_VALUE);
				Object selected = event.getProperty(UIEvents.EventTags.NEW_VALUE);
				MPart oldSelectedPart = oldSelected instanceof MPart ? (MPart) oldSelected : null;
				MPart selectedPart = selected instanceof MPart ? (MPart) selected : null;
				if (oldSelectedPart != null && isInContainer(oldSelectedPart)) {
					firePartHidden(oldSelectedPart);
				}
				if (selectedPart != null && selectedPart.isToBeRendered()
						&& isInContainer(selectedPart)) {
					firePartVisible(selectedPart);