private static <T extends DialogComponentProvider> T getDialogComponent(Window parentWindow,
			Class<T> ghidraClass) {
		Set<Window> winList = getWindows(parentWindow);
		for (Window w : winList) {
			DialogComponentProvider dialogComponentProvider =
				getDialogComponentProvider(w, ghidraClass);
			if (dialogComponentProvider != null) {
				return ghidraClass.cast(dialogComponentProvider);
			}

			// try child windows of the given window too (depth-first)
			Set<Window> windows = getWindows(w);
			for (Window window : windows) {
				dialogComponentProvider = getDialogComponentProvider(window, ghidraClass);
				if (dialogComponentProvider != null) {
					return ghidraClass.cast(dialogComponentProvider);
				}
			}
		}
		return null;
	}
Waits for the first window of the given class.  This method assumes that the desired dialog
is parented by <code>parentWindow</code>.

@param parentWindow The parent of the desired dialog; may be null
@param clazz The class of the dialog the user desires
@param timeoutMS The max amount of time in milliseconds to wait for the requested dialog
       to appear.
@return The first occurrence of a dialog that extends the given <code>ghidraClass</code>
@deprecated Instead call one of the methods that does not take a timeout
            (we are standardizing timeouts).  The timeouts passed to this method will
            be ignored in favor of the standard value.
Ghidra/Framework/Docking/src/main/java/docking/test/AbstractDockingTest.java