code: function(n){
      if(this.busy) return;
      this.busy = true;
      
      var that = this,
          config = this.config,
          graph = this.graph,
          clickedNode = n,
          previousClickedNode = this.clickedNode;
  
      var callback = {
        onComplete: function() {
          //ensure that nodes are shown for that level
          if(config.levelsToShow > 0) {
            that.geom.setRightLevelToShow(n);
          }
          //compute positions of newly inserted nodes
          if(config.request) that.compute();
          if(config.animate) {
            //fade nodes
            graph.nodeList.setDataset(['current', 'end'], {
              'alpha': [1, 0]
            });
            n.eachSubgraph(function(n) {
              n.setData('alpha', 1, 'end');
            }, "ignore");
            that.fx.animate({
              duration: 500,
              modes:['node-property:alpha'],
              onComplete: function() {
                //compute end positions
                that.clickedNode = clickedNode;
                that.compute('end');
                //animate positions
                //TODO(nico) commenting this line didn't seem to throw errors...
                that.clickedNode = previousClickedNode;
                that.fx.animate({
                  modes:['linear', 'node-property:width:height'],
                  duration: 1000,
                  onComplete: function() { 
                    that.busy = false;
                    //TODO(nico) check comment above
                    that.clickedNode = clickedNode;
                  }
                });
              }
            });
          } else {
            that.busy = false;
            that.clickedNode = n;
            that.refresh();
          }
        }
      };
      if(config.request) {
        this.requestNodes(clickedNode, callback);
      } else {
        callback.onComplete();
      }
    }
docs: /*
  Method: enter
  
  Sets the node as root.
  
  Parameters:
  
  n - (object) A <Graph.Node>.