Bug 343003 Selection changes for shared parts may not be propagated if they were not originally rendered in the model
The search algorithm currently only iterates through containers for parts. This will not work for parts that are represented by placeholders.
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/SelectionServiceImpl.java
static final String OUT_SELECTION = "output.selection"; 
	private ListenerList genericListeners = new ListenerList();
	private Map<String, ListenerList> targetedListeners = new HashMap<String, ListenerList>();
	private Set<IEclipseContext> tracked = new HashSet<IEclipseContext>();
	@Inject
	private IEclipseContext context;
	@Inject
	private EPartService partService;
	/**
	 * This is the specific implementation. TODO: generalize it
	 */
	@Inject
	@Named(EPartService.PART_SERVICE_ROOT)
	private MContext serviceRoot;
	@Inject
	private IEventBroker eventBroker;
	private EventHandler eventHandler = new EventHandler() {
		public void handleEvent(Event event) {
			Object element = event.getProperty(UIEvents.EventTags.ELEMENT);
			if (element instanceof MPart) {
				MPart part = (MPart) element;
				IEclipseContext context = part.getContext();
				if (context != null && isInContainer(part)) {
					track(part);
				}
			}
		}
	};
	private MPart activePart;
	@PreDestroy