Bug 263207 [CommonNavigator] Improve DnD tracing and add DnD test suite
There are no DnD tests for the Common Navigator. Also, the CNF has many test utility classes (basically stolen from JDT), these should be moved into a lower level area, and it looks like org.eclipse.ui.test.harness is a good place. (Perhaps we can get the JDT to use these identical versions as well so there is only one copy that everyone uses). Finally, the DnD tracing needs to be improved to show more information and show it more concisely.
tests/org.eclipse.ui.tests.navigator/src/org/eclipse/ui/tests/navigator/SWTEventHelper.java
public static void pressKeyChar(Display display, char keyChar, boolean runEventQueue) {
		keyCharDown(display, keyChar, runEventQueue);
		keyCharUp(display, keyChar, runEventQueue);
	}
	public static void pressKeyCharCombination(Display display, char[] keyChars) {
		pressKeyCharCombination(display, keyChars, true);
	}
	
	public static void pressKeyCharCombination(Display display, char[] keyChars, boolean runEventQueue) {
		for (int i= 0; i < keyChars.length; i++)
			keyCharDown(display, keyChars[i], runEventQueue);
		for (int i= keyChars.length - 1; i >= 0; i--)
			keyCharUp(display, keyChars[i], runEventQueue);
	}
	public static void keyCharDown(Display display, char keyChar, boolean runEventQueue) {
		keyCharEvent(display, SWT.KeyDown, keyChar, runEventQueue);
	}
	public static void keyCharUp(Display display, char keyChar, boolean runEventQueue) {
		keyCharEvent(display, SWT.KeyUp, keyChar, runEventQueue);
	}
	private static Event fgKeyCharEvent= new Event();
	public static void keyCharEvent(Display display, int type, char keyChar, boolean runEventQueue) {
		fgKeyCharEvent.type= type;
		fgKeyCharEvent.character= keyChar;
		postEvent(display, fgKeyCharEvent, runEventQueue);
	}
	private static void postEvent(final Display display, final Event event, boolean runEventQueue) {
		DisplayHelper helper= new DisplayHelper() {
			public boolean condition() {
				return display.post(event);