static/ext/src/data/TreeStore.js
function(root, /* private */ preventLoad) {
        var me = this,
            model = me.model,
            idProperty = model.prototype.idProperty

        root = root || {};
        if (!root.isModel) {
            root = Ext.apply({}, root);
            // create a default rootNode and create internal data struct.
            Ext.applyIf(root, {
                id: me.defaultRootId,
                text: me.defaultRootText,
                allowDrag: false
            });
            if (root[idProperty] === undefined) {
                root[idProperty] = me.defaultRootId;
            }
            Ext.data.NodeInterface.decorate(model);
            root = Ext.ModelManager.create(root, model);
        } else if (root.isModel && !root.isNode) {
            Ext.data.NodeInterface.decorate(model);
        }


        // Because we have decorated the model with new fields,
        // we need to build new extactor functions on the reader.
        me.getProxy().getReader().buildExtractors(true);

        // When we add the root to the tree, it will automaticaly get the NodeInterface
        me.tree.setRootNode(root);

        // If the user has set expanded: true on the root, we want to call the expand function to kick off
        // an expand process, so clear the expanded status and call expand.
        // Upon receipt, the expansion process is the most efficient way of processing the
        // returned nodes and putting them into the NodeStore in one block.
        // Appending a node to an expanded node is expensive - the NodeStore and UI are updated.
        if (preventLoad !== true && !root.isLoaded() && (me.autoLoad === true || root.isExpanded())) {
            root.data.expanded = false;
            root.expand();
        }

        return root;
    }
function(root, /* private */ preventLoad) {
        var me = this,
            model = me.model,
            idProperty = model.prototype.idProperty

        root = root || {};
        if (!root.isModel) {
            root = Ext.apply({}, root);
            // create a default rootNode and create internal data struct.
            Ext.applyIf(root, {
                id: me.defaultRootId,
                text: me.defaultRootText,
                allowDrag: false
            });
            if (root[idProperty] === undefined) {
                root[idProperty] = me.defaultRootId;
            }
            Ext.data.NodeInterface.decorate(model);
            root = Ext.ModelManager.create(root, model);
        } else if (root.isModel && !root.isNode) {
            Ext.data.NodeInterface.decorate(model);
        }


        // Because we have decorated the model with new fields,
        // we need to build new extactor functions on the reader.
        me.getProxy().getReader().buildExtractors(true);

        // When we add the root to the tree, it will automaticaly get the NodeInterface
        me.tree.setRootNode(root);

        // If the user has set expanded: true on the root, we want to call the expand function to kick off
        // an expand process, so clear the expanded status and call expand.
        // Upon receipt, the expansion process is the most efficient way of processing the
        // returned nodes and putting them into the NodeStore in one block.
        // Appending a node to an expanded node is expensive - the NodeStore and UI are updated.
        if (preventLoad !== true && !root.isLoaded() && (me.autoLoad === true || root.isExpanded())) {
            root.data.expanded = false;
            root.expand();
        }

        return root;
    }
function ( root , /* private */ preventLoad ) { var me = this , model = me . model , idProperty = model . prototype . idProperty root = root || { } ; if ( ! root . isModel ) { root = Ext . apply ( { } , root ) ; // create a default rootNode and create internal data struct. Ext . applyIf ( root , { id : me . defaultRootId , text : me . defaultRootText , allowDrag : false } ) ; if ( root [ idProperty ] === undefined ) { root [ idProperty ] = me . defaultRootId ; } Ext . data . NodeInterface . decorate ( model ) ; root = Ext . ModelManager . create ( root , model ) ; } else if ( root . isModel && ! root . isNode ) { Ext . data . NodeInterface . decorate ( model ) ; } // Because we have decorated the model with new fields, // we need to build new extactor functions on the reader. me . getProxy ( ) . getReader ( ) . buildExtractors ( true ) ; // When we add the root to the tree, it will automaticaly get the NodeInterface me . tree . setRootNode ( root ) ; // If the user has set expanded: true on the root, we want to call the expand function to kick off // an expand process, so clear the expanded status and call expand. // Upon receipt, the expansion process is the most efficient way of processing the // returned nodes and putting them into the NodeStore in one block. // Appending a node to an expanded node is expensive - the NodeStore and UI are updated. if ( preventLoad !== true && ! root . isLoaded ( ) && ( me . autoLoad === true || root . isExpanded ( ) ) ) { root . data . expanded = false ; root . expand ( ) ; } return root ; }
Sets the root node for this store.  See also the {@link #root} config option.
@param {Ext.data.Model/Ext.data.NodeInterface/Object} root
@return {Ext.data.NodeInterface} The new root
Sets the root node for this store . See also the {