private void moveNode(final Direction direction) {
   CheckedTreeNode node = getSelectedNode();
   if (node != null) {
     if (isMovingAvailable(node, direction)) {
       moveNode(node, direction);
       if (node.getUserObject() instanceof Tool) {
         ToolsGroup group = (ToolsGroup) (((CheckedTreeNode) node.getParent()).getUserObject());
         Tool tool = (Tool) node.getUserObject();
         moveElementInsideGroup(tool, group, direction);
       }
       TreePath path = new TreePath(node.getPath());
       myTree.getSelectionModel().setSelectionPath(path);
       myTree.expandPath(path);
       myTree.requestFocus();
     }
   }
 }