Bug 304586 Injected methods only react to changes to method arguments
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/internal/PartServiceImpl.java
IEclipseContext oldContext = oldSelectedElement.getContext();
		Object child = parentContext.get(IContextConstants.ACTIVE_CHILD);
		if (child == oldContext) {
			parentContext.set(IContextConstants.ACTIVE_CHILD, part == null ? null : part
					.getContext());
		}
	}
	private MElementContainer<MUIElement> getActivePerspective() {
		if (rootContainer.getChildren().size() > 0
				&& rootContainer.getChildren().get(0) instanceof MPerspectiveStack) {
			
			MElementContainer<MUIElement> perspStack = (MElementContainer<MUIElement>) rootContainer
					.getChildren().get(0);
			return (MElementContainer<MUIElement>) perspStack.getSelectedElement();
		}
		return null;
	}
	public MPart findPart(String id) {
		MUIElement searchRoot = rootContainer;
		
		
		if (getActivePerspective() != null) {
			searchRoot = getActivePerspective();
		}
		MApplicationElement element = modelService.find(id, searchRoot);
		return element instanceof MPart ? (MPart) element : null;
	}
	public Collection<MPart> getParts() {
		return modelService.findElements(rootContainer, null, MPart.class, null);
	}