code: function() {
      
          if (this.isDynamic()) { return false; }
          
          var def, defs = Lang.merge(this.data), children = []; 
          
          
  
          if (this.expanded) {defs.expanded = this.expanded; }
          if (!this.multiExpand) { defs.multiExpand = this.multiExpand; }
          if (!this.renderHidden) { defs.renderHidden = this.renderHidden; }
          if (!this.hasIcon) { defs.hasIcon = this.hasIcon; }
          if (this.nowrap) { defs.nowrap = this.nowrap; }
          if (this.className) { defs.className = this.className; }
          if (this.editable) { defs.editable = this.editable; }
          if (this.enableHighlight) { defs.enableHighlight = this.enableHighlight; }
          if (this.highlightState) { defs.highlightState = this.highlightState; }
          if (this.propagateHighlightUp) { defs.propagateHighlightUp = this.propagateHighlightUp; }
          if (this.propagateHighlightDown) { defs.propagateHighlightDown = this.propagateHighlightDown; }
          defs.type = this._type;
          
          
          
          for (var i = 0; i < this.children.length;i++) {
              def = this.children[i].getNodeDefinition();
              if (def === false) { return false;}
              children.push(def);
          }
          if (children.length) { defs.children = children; }
          return defs;
      }
docs: Returns an object which could be used to build a tree out of this node and its children.
  It can be passed to the tree constructor to reproduce this node as a tree.
  It will return false if the node or any children loads dynamically, regardless of whether it is loaded or not.
  @method getNodeDefinition
  @return {Object | false}  definition of the tree or false if the node or any children is defined as dynamic