//now get the index of the selected node in the DefaultTreeModel
int index = dtm.getIndexOfChild(node.getParent(), node);
// if selected node is first, return (can't move it up)
if (index < node.getParent().getChildCount() - 1) {
dtm.insertNodeInto(node, (DefaultMutableTreeNode) node.getParent(), index + 1); // move the node
dtm.reload();
for (int i = 0; i < tree.getRowCount(); i++) {
tree.expandRow(i);
}
tree.getSelectionModel().setSelectionPath(new TreePath(node.getPath()));
updateEngineModel();