private void moveAsFirstChild() {
		JoeTree tree = targetNode.getTree();

		CompoundUndoableMove undoable = new CompoundUndoableMove(tree.getSelectedNodesParent(),targetNode);
		int currentIndexAdj = 0;
		
		for (int i = tree.getSelectedNodes().size() - 1; i >= 0; i--) {
			Node nodeToMove = tree.getSelectedNodes().get(i);

			// Abort if node is not moveable
			if (!nodeToMove.isMoveable()) {
				continue;
			}

			int currentIndex = nodeToMove.currentIndex();
			int targetIndex = 0;
			
			if (nodeToMove.getParent() == targetNode) {
				currentIndex += currentIndexAdj;
				currentIndexAdj++;
			}
			
			undoable.addPrimitive(new PrimitiveUndoableMove(undoable, nodeToMove, currentIndex, targetIndex));
		}
		
		if (!undoable.isEmpty()) {
			if (undoable.getPrimitiveCount() == 1) {
				undoable.setName("Move Node");
			} else {
				undoable.setName(new StringBuffer().append("Move ").append(undoable.getPrimitiveCount()).append(" Nodes").toString());
			}
			tree.getDocument().undoQueue.add(undoable);
			undoable.redo();
		}
	}