public static void selectInverse(Node currentNode, JoeTree tree, OutlineLayoutManager layout) {
		// select all siblings
		Node parent = currentNode.getParent();
		
		for (int i = 0, limit = parent.numOfChildren(); i < limit; i++) {
			Node child = parent.getChild(i);
			
			if (child.isSelected()) {
				tree.removeNodeFromSelection(child);
			} else {
				tree.addNodeToSelection(child);
			}
		}
		
		if (tree.getNumberOfSelectedNodes() == 0) {
			// This is kind of a freak case since we have to change focus.
			// Change to text node if all nodes were deselected.
			tree.setCursorPosition(0);
			tree.getDocument().setPreferredCaretPosition(0);
			
			tree.setComponentFocus(OutlineLayoutManager.TEXT);
			tree.clearSelection();
			layout.draw(currentNode,OutlineLayoutManager.TEXT);
		
		} else {
			// Redraw and Set Focus
			layout.draw(currentNode, OutlineLayoutManager.ICON);
		}
	}