public static void navigate(JoeTree tree, OutlineLayoutManager layout, int type) {
		Node node = null;
		Node youngestNode = null;
		Node oldestNode = null;
		
		switch(type) {
			case UP:
				youngestNode = tree.getYoungestInSelection();
				node = youngestNode.prevSibling();
				if (node == youngestNode) {return;}
				tree.clearSelection();
				break;

			case DOWN:
				oldestNode = tree.getOldestInSelection();
				node = oldestNode.nextSibling();
				if (node == oldestNode) {return;}
				tree.clearSelection();
				break;

			case LEFT:
				youngestNode = tree.getYoungestInSelection();
				node = tree.getPrevNode(youngestNode);
				if (node == null) {return;}
				tree.setSelectedNodesParent(node.getParent());
				break;

			case RIGHT:
				oldestNode = tree.getOldestInSelection();
				node = tree.getNextNode(oldestNode);
				if (node == null) {return;}
				tree.setSelectedNodesParent(node.getParent());
				break;
				
			default:
				return;
		}
		
		tree.addNodeToSelection(node);

		// Record the EditingNode and CursorPosition and ComponentFocus
		tree.setEditingNode(node);

		// Redraw and Set Focus
		layout.draw(node,OutlineLayoutManager.ICON);
	}