docs: function(json, onComplete) {
      if(this.busy) return;
      this.busy = true;
      
      var st = this.st;
      var graph = st.graph;
      var values = json.values;
      var animate = this.config.animate;
      var that = this;
      var horz = this.config.orientation == 'horizontal';
      $.each(values, function(v) {
        var n = graph.getByName(v.label);
        if(n) {
          n.setData('valueArray', $.splat(v.values));
          if(json.label) {
            n.setData('stringArray', $.splat(json.label));
          }
        }
      });
      this.normalizeDims();
      st.compute();
      st.select(st.root);
      if(animate) {
        if(horz) {
          st.fx.animate({
            modes: ['node-property:width:dimArray'],
            duration:1500,
            onComplete: function() {
              that.busy = false;
              onComplete && onComplete.onComplete();
            }
          });
        } else {
          st.fx.animate({
            modes: ['node-property:height:dimArray'],
            duration:1500,
            onComplete: function() {
              that.busy = false;
              onComplete && onComplete.onComplete();
            }
          });
        }
      }
    }