@Override
	protected final List<GTreeNode> generateChildren() {
		final GTree tree = getTree();
		if (Swing.isSwingThread()) {
			// This method is only supported on the swing thread for nodes that are currently
			// in a tree. The LoadChildrenTask only works if there is a tree
			if (tree == null) {
				return Collections.emptyList();
			}
			LoadChildrenTask loadTask = new LoadChildrenTask(tree);
			tree.runTask(loadTask);
			return CollectionUtils.asList(new InProgressGTreeNode());
		}
		return generateChildrenNow(getMonitor(tree));
	}
Subclass must implement this method to generate their children. This operation will always be
performed in a background thread (i.e. Not the swing thread)

@param monitor a TaskMonitor for reporting progress and cancel notification.
@return the list of children for this node.
@throws CancelledException if the monitor is cancelled
Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTreeSlowLoadingNode.java