public static void moveLeft(OutlinerCellRendererImpl textArea, JoeTree tree, OutlineLayoutManager layout) {
		Node currentNode = textArea.node;
		Node youngestNode = tree.getYoungestInSelection();
		Node node = tree.getPrevNode(youngestNode);
		if (node == null) {
			return;
		}

		// Put the Undoable onto the UndoQueue
		CompoundUndoableMove undoable = new CompoundUndoableMove(currentNode.getParent(), node.getParent());
		int targetIndex = node.currentIndex();
		int currentIndexAdj = 0;
		
		JoeNodeList nodeList = tree.getSelectedNodes();
		int moveCount = 0;
		for (int i = 0, limit = nodeList.size(); i < limit; i++) {
			// Record the Insert in the undoable
			Node nodeToMove = nodeList.get(i);

			// Abort if node is not moveable
//			if (!nodeToMove.isMoveable()) {
//				continue;
//			}
		
			int currentIndex = nodeToMove.currentIndex() + currentIndexAdj;
			undoable.addPrimitive(new PrimitiveUndoableMove(undoable, nodeToMove, currentIndex, targetIndex));
			
			if (nodeToMove.getParent() != node.getParent()) {
				currentIndexAdj--;
			}
			targetIndex++;
			moveCount++;
		}

		if (!undoable.isEmpty()) {
			if (moveCount == 1) {
				undoable.setName("Move Node Up");
			} else {
				undoable.setName(new StringBuffer().append("Move ").append(moveCount).append(" Nodes Up").toString());
			}
			tree.getDocument().getUndoQueue().add(undoable);
			undoable.redo();
		}		
	}