private void toggleDataRecursivlyUsingSubMonitor(Data data, boolean openState,
			TaskMonitor monitor) {
		if (data == null && !monitor.isCancelled()) {
			return;
		}

		if (isOpen(data) != openState) {
			toggleTopLevelData(data);
		}

		int componentCount = data.getNumComponents();
		for (int i = 0; i < componentCount && !monitor.isCancelled(); i++) {
			toggleDataRecursivlyUsingSubMonitor(data.getComponent(i), openState, monitor);
		}
	}
Returns the index of the component that is open at the given address.
@param address the address to find the open index.
@param path the component path.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/util/OpenCloseManager.java