public void startEditing(GTreeNode parent, String childName) {

		// we call this here, even though the JTree will do this for us, so that we will trigger
		// a load call before this task is run, in case lazy nodes are involved in this tree,
		// which must be loaded before we can edit
		expandPath(parent);

		//
		// The request to edit the node may be for a node that has not yet been added to this
		// tree.  Further, some clients will buffer events, which means that the node the client
		// wishes to edit may not yet be in the parent node even if we run this request later on
		// the Swing thread.  To deal with this, we use a construct that will run our request
		// once the given node has been added to the parent.
		//
		Predicate<GTreeNode> nameMatches = n -> n.getName().equals(childName);
		GTreeNode modelParent = getModelNode(parent);
		whenNodeIsReady(modelParent, nameMatches, editNode -> {
			runTask(new GTreeStartEditingTask(GTree.this, tree, editNode));
		});
	}
Requests that the node with the given name, in the given parent, be edited. This operation is
asynchronous. This request will be buffered as needed to wait for the given node to be added
to the parent, up to a timeout period.
<p>
Note: if there are multiple nodes by the given name under the given parent, then no editing
will take place.  In that case, you can instead use {@link #startEditing(GTreeNode)}, if you
have the node.  If you have duplicates and do not yet have the node, then you will need to 
create your own mechanism for waiting for the desired node and then starting the edit.

@param parent the parent node
@param childName the name of the child to edit
Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/GTree.java