protected void processSingleClick(MouseEvent e) {
		Node node = textArea.node;
		JoeTree tree = node.getTree();
		
		if (e.isShiftDown()) {
			tree.selectRangeFromMostRecentNodeTouched(node);
		} else if (e.isControlDown()) {
			if (node.isSelected() && (tree.getSelectedNodes().size() != 1)) {
				tree.removeNodeFromSelection(node);
			} else if (tree.getSelectedNodesParent() == node.getParent()) {
				tree.addNodeToSelection(node);
			}
		} else if (!node.isSelected()) {
			tree.setSelectedNodesParent(node.getParent());
			tree.addNodeToSelection(node);
		}
	}