private Component findNextProviderComponent(Component component, boolean forward) {
		if (component == null) {
			return null;
		}

		DockingWindowManager windowManager = getWindowManager();
		ComponentProvider startingProvider = windowManager.getComponentProvider(component);

		Component next = getNext(component, forward);
		while (next != null && next != component) {
			// Skip JTabbedPanes. Assume the user prefers that the component inside the tabbed
			// pane gets focus, not the tabbed pane itself so the user does not have to navigate
			// twice to get the internal component.
			if (next instanceof JTabbedPane) {
				next = getNext(next, forward);
				continue;
			}
			ComponentProvider nextProvider = windowManager.getComponentProvider(next);
			if (nextProvider != startingProvider) {
				return next;
			}
			next = getNext(next, forward);
		}
		return null;
	}
Transfers focus to the first component in the next/previous dockable component provider.
@param forward true to go to next provider, false to go to previous provider
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginTool.java