Bug 22553 "Show in Types Hierarchy" selects the "wrong" class [type hierarchy]
My custom perspective has a Packages pane, Hierarchy pane and a code editor pane. My packages pane is really a pane with a Packages Tab and a Projects Tab. (1) I select one of my packages. (2) I choose Open in Types Hierarchy. (3) E opens by package in the Types Hierarchy but Selects the class Object! (4) This causes the Package pane to select the java.lang package! (5) I have "lost" my context and the UI looks "funny": I have the beautiful hierarchy view of my classes in my package but, Object is selected (which is not in my package obviously) and java.lang is selected. Suggestion: (a) Do NOT select any classes in the just opened package. (b) If you MUST select a class, select one in the package. Please. Thank you very much.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TypeHierarchyViewPart.java
int ops= DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
		for (int i= 0; i < fAllViewers.length; i++) {
			addDragAdapters(fAllViewers[i], ops, transfers);
			addDropAdapters(fAllViewers[i], ops | DND.DROP_DEFAULT, transfers);
		}	
		addDragAdapters(fMethodsViewer, ops, transfers);
		
		DropTarget dropTarget = new DropTarget(fNoHierarchyShownLabel, ops | DND.DROP_DEFAULT);
		dropTarget.setTransfer(transfers);
		dropTarget.addDropListener(new TypeHierarchyTransferDropAdapter(this, fAllViewers[0]));
	}
	
	private void addDropAdapters(AbstractTreeViewer viewer, int ops, Transfer[] transfers){
		TransferDropTargetListener[] dropListeners= new TransferDropTargetListener[] {
			new TypeHierarchyTransferDropAdapter(this, viewer)
		};
		viewer.addDropSupport(ops, transfers, new DelegatingDropAdapter(dropListeners));
	}
	private void addDragAdapters(StructuredViewer viewer, int ops, Transfer[] transfers){
		Control control= viewer.getControl();
		TransferDragSourceListener[] dragListeners= new TransferDragSourceListener[] {
			new SelectionTransferDragAdapter(viewer)
		};
		DragSource source= new DragSource(control, ops);
		
		source.addDragListener(new DelegatingDragAdapter(dragListeners));		
	}	
	
	private void viewPartKeyShortcuts(KeyEvent event) {
		if (event.stateMask == SWT.CTRL) {