Bug 326300 EPartService's activate(MPart) method may not work if you activate the window's active part
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java
Object child = parentContext.get(IContextConstants.ACTIVE_CHILD);
		if (child == null || oldContext == null || child == oldContext) {
			parentContext.set(IContextConstants.ACTIVE_CHILD,
					part == null ? null : part.getContext());
		}
	}
	public MPart findPart(String id) {
		MApplicationElement element = modelService.find(id, getContainer());
		if (element instanceof MPlaceholder) {
			((MPlaceholder) element).getRef().setCurSharedRef((MPlaceholder) element);
			element = ((MPlaceholder) element).getRef();
		}
		return element instanceof MPart ? (MPart) element : null;
	}
	public Collection<MPart> getParts() {
		return modelService.findElements(getContainer(), null, MPart.class, null);
	}
	public boolean isPartVisible(MPart part) {
		if (isInContainer(part)) {
			MUIElement element = part;
			MElementContainer<?> parent = part.getParent();
			if (parent == null) {
				
				element = part.getCurSharedRef();
				if (element == null) {
					return false;
				}
				parent = element.getParent();
				if (parent == null) {
					return false;