Bug 334559 EPartService's part searching path may not include parts outside of the active perspective
bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/ui/internal/workbench/PartServiceImpl.java
Assert.isNotNull(partState);
		MPart addedPart = addPart(part);
		MPlaceholder localPlaceholder = getLocalPlaceholder(addedPart);
		
		if (localPlaceholder != null && addedPart.getCurSharedRef() != localPlaceholder) {
			addedPart.setCurSharedRef(localPlaceholder);
		}
		switch (partState) {
		case ACTIVATE:
			activate(addedPart);
			return addedPart;
		case VISIBLE:
			MPart activePart = getActivePart();
			if (activePart == null || getParent(activePart) == getParent(addedPart)) {
				activate(addedPart);
			} else {
				bringToTop(addedPart);
			}
			return addedPart;
		case CREATE:
			addedPart.setToBeRendered(true);
			MPlaceholder placeholder = addedPart.getCurSharedRef();
			if (placeholder != null) {
				placeholder.setToBeRendered(true);
				engine.createGui(placeholder);
				MElementContainer<MUIElement> parent = placeholder.getParent();
				if (parent.getChildren().size() == 1) {
					parent.setSelectedElement(placeholder);
				}
			} else {