public void fireNodeDataChanged(GTreeNode changedNode) {
		if (!eventsEnabled) {
			return;
		}
		SystemUtilities.assertThisIsTheSwingThread(
			"GTreeModel.fireNodeDataChanged() must be " + "called from the AWT thread");

		GTreeNode viewNode = convertToViewNode(changedNode);
		if (viewNode == null) {
			return;
		}
		// Note - we are passing in the treepath of the node that changed.  The javadocs in
		// TreemodelListener seems to imply that you need to pass in the treepath of the parent
		// of the node that changed and then the indexes of the children that changed. But this
		// works and is cheaper then computing the index of the node that changed.
		TreeModelEvent event = new TreeModelEvent(this, viewNode.getTreePath());

		for (TreeModelListener listener : listeners) {
			listener.treeNodesChanged(event);
		}
	}
Sets the models root node. NOTE: this is intended to only be called from the {@link GTree}
@param newRoot the new tree model root.  It will either be the actual root or a root
of a filtered sub-tree
Ghidra/Framework/Docking/src/main/java/docking/widgets/tree/internal/GTreeModel.java