@Override
	public boolean isStartDragOk(DragGestureEvent e) {
		synchronized (root) {
			Point p = e.getDragOrigin();
			ProgramNode node = getTreeNode(p);
			if (node == null || node.equals(root)) {
				return false;
			}
			if (isEditing()) {
				stopEditing();
			}
			return true;
		}
	}
Class to support Drag and Drop; it is also responsible for
rendering the icons, and  for editing a node name.
<p>The nodes that are used in this class are ProgramNode objects.</p>
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/programtree/DragNDropTree.java