public void nodeSelected(final TreeNode node) {
final ITreeState treeState = getTree().getTreeState();
if (!node.isLeaf()) {
if (node.equals(previouslySelected) && treeState.isNodeExpanded(node)) {
treeState.collapseNode(node);
} else {
treeState.expandNode(node);
}
}
previouslySelected = node;