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/DisplayWaiter.java
/**
	 * Creates a new instance on the given display and timeout.
	 * 
	 * @param display the display to run the event loop of
	 * @param keepRunning <code>true</code> if the thread should be kept
	 *        running after timing out
	 */
	public DisplayWaiter(Display display, boolean keepRunning) {
		Assert.assertNotNull(display);
		fDisplay= display;
		fState= STOPPED;
		fKeepRunningOnTimeout= keepRunning;
	}
	
	/**
	 * Starts the timeout thread if it is not currently running. Nothing happens
	 * if a thread is already running.
	 * 
	 * @param delay the delay from now in milliseconds
	 * @return the timeout state which can be queried for its timed out status
	 */
	public Timeout start(long delay) {
		Assert.assertTrue(delay > 0);
		synchronized (fMutex) {
			switch (fState) {
				case STOPPED:
					startThread();
					setNextTimeout(delay);
					break;
				case IDLE: