-<!DOCTYPE html><html><head><title>Sencha Documentation Project</title><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../prettify.css" type="text/css"><link rel="stylesheet" href="../prettify_sa.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script></head><body onload="prettyPrint()"><pre class="prettyprint"><pre><span id='Ext-tree.Panel'>/**
-</span> * @class Ext.tree.Panel
- * @extends Ext.panel.Table
- *
- * The TreePanel provides tree-structured UI representation of tree-structured data.
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>The source code</title>
+ <link href="../prettify/prettify.css" type="text/css" rel="stylesheet" />
+ <script type="text/javascript" src="../prettify/prettify.js"></script>
+ <style type="text/css">
+ .highlight { display: block; background-color: #ddd; }
+ </style>
+ <script type="text/javascript">
+ function highlight() {
+ document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
+ }
+ </script>
+</head>
+<body onload="prettyPrint(); highlight();">
+ <pre class="prettyprint lang-js"><span id='Ext-tree-Panel'>/**
+</span> * The TreePanel provides tree-structured UI representation of tree-structured data.
* A TreePanel must be bound to a {@link Ext.data.TreeStore}. TreePanel's support
- * multiple columns through the {@link columns} configuration.
+ * multiple columns through the {@link #columns} configuration.
*
* Simple TreePanel using inline data.
*
* {@img Ext.tree.Panel/Ext.tree.Panel1.png Ext.tree.Panel component}
*
- * ## Simple Tree Panel (no columns)
+ * Code:
*
* var store = Ext.create('Ext.data.TreeStore', {
* root: {
* expanded: true,
- * text:"",
- * user:"",
- * status:"",
* children: [
- * { text:"detention", leaf: true },
- * { text:"homework", expanded: true,
- * children: [
- * { text:"book report", leaf: true },
- * { text:"alegrbra", leaf: true}
- * ]
- * },
- * { text: "buy lottery tickets", leaf:true }
+ * { text: "detention", leaf: true },
+ * { text: "homework", expanded: true, children: [
+ * { text: "book report", leaf: true },
+ * { text: "alegrbra", leaf: true}
+ * ] },
+ * { text: "buy lottery tickets", leaf: true }
* ]
* }
* });
- *
+ *
* Ext.create('Ext.tree.Panel', {
* title: 'Simple Tree',
* width: 200,
* rootVisible: false,
* renderTo: Ext.getBody()
* });
- *
- * @xtype treepanel
*/
Ext.define('Ext.tree.Panel', {
extend: 'Ext.panel.Table',
selType: 'treemodel',
treeCls: Ext.baseCSSPrefix + 'tree-panel',
-
-<span id='Ext-tree.Panel-cfg-lines'> /**
-</span> * @cfg {Boolean} lines false to disable tree lines (defaults to true)
+
+ deferRowRender: false,
+
+<span id='Ext-tree-Panel-cfg-lines'> /**
+</span> * @cfg {Boolean} lines False to disable tree lines. Defaults to true.
*/
lines: true,
-<span id='Ext-tree.Panel-cfg-useArrows'> /**
-</span> * @cfg {Boolean} useArrows true to use Vista-style arrows in the tree (defaults to false)
+<span id='Ext-tree-Panel-cfg-useArrows'> /**
+</span> * @cfg {Boolean} useArrows True to use Vista-style arrows in the tree. Defaults to false.
*/
useArrows: false,
-<span id='Ext-tree.Panel-cfg-singleExpand'> /**
-</span> * @cfg {Boolean} singleExpand <tt>true</tt> if only 1 node per branch may be expanded
+<span id='Ext-tree-Panel-cfg-singleExpand'> /**
+</span> * @cfg {Boolean} singleExpand True if only 1 node per branch may be expanded. Defaults to false.
*/
singleExpand: false,
enableDrop: true
},
-<span id='Ext-tree.Panel-cfg-animate'> /**
-</span> * @cfg {Boolean} animate <tt>true</tt> to enable animated expand/collapse (defaults to the value of {@link Ext#enableFx Ext.enableFx})
+<span id='Ext-tree-Panel-cfg-animate'> /**
+</span> * @cfg {Boolean} animate True to enable animated expand/collapse. Defaults to the value of {@link Ext#enableFx}.
*/
-<span id='Ext-tree.Panel-cfg-rootVisible'> /**
-</span> * @cfg {Boolean} rootVisible <tt>false</tt> to hide the root node (defaults to <tt>true</tt>)
+<span id='Ext-tree-Panel-cfg-rootVisible'> /**
+</span> * @cfg {Boolean} rootVisible False to hide the root node. Defaults to true.
*/
rootVisible: true,
-<span id='Ext-tree.Panel-cfg-displayField'> /**
-</span> * @cfg {Boolean} displayField The field inside the model that will be used as the node's text. (defaults to <tt>text</tt>)
+<span id='Ext-tree-Panel-cfg-displayField'> /**
+</span> * @cfg {Boolean} displayField The field inside the model that will be used as the node's text. Defaults to 'text'.
*/
displayField: 'text',
-<span id='Ext-tree.Panel-cfg-root'> /**
-</span> * @cfg {Boolean} root Allows you to not specify a store on this TreePanel. This is useful for creating a simple
- * tree with preloaded data without having to specify a TreeStore and Model. A store and model will be created and
- * root will be passed to that store.
+<span id='Ext-tree-Panel-cfg-root'> /**
+</span> * @cfg {Ext.data.Model/Ext.data.NodeInterface/Object} root
+ * Allows you to not specify a store on this TreePanel. This is useful for creating a simple tree with preloaded
+ * data without having to specify a TreeStore and Model. A store and model will be created and root will be passed
+ * to that store. For example:
+ *
+ * Ext.create('Ext.tree.Panel', {
+ * title: 'Simple Tree',
+ * root: {
+ * text: "Root node",
+ * expanded: true,
+ * children: [
+ * { text: "Child 1", leaf: true },
+ * { text: "Child 2", leaf: true }
+ * ]
+ * },
+ * renderTo: Ext.getBody()
+ * });
*/
root: null,
normalCfgCopy: ['displayField', 'root', 'singleExpand', 'useArrows', 'lines', 'rootVisible', 'scroll'],
lockedCfgCopy: ['displayField', 'root', 'singleExpand', 'useArrows', 'lines', 'rootVisible'],
-<span id='Ext-tree.Panel-cfg-hideHeaders'> /**
-</span> * @cfg {Boolean} hideHeaders
- * Specify as <code>true</code> to hide the headers.
+<span id='Ext-tree-Panel-cfg-hideHeaders'> /**
+</span> * @cfg {Boolean} hideHeaders True to hide the headers. Defaults to `undefined`.
*/
-<span id='Ext-tree.Panel-cfg-folderSort'> /**
-</span> * @cfg {Boolean} folderSort Set to true to automatically prepend a leaf sorter to the store (defaults to <tt>undefined</tt>)
+<span id='Ext-tree-Panel-cfg-folderSort'> /**
+</span> * @cfg {Boolean} folderSort True to automatically prepend a leaf sorter to the store. Defaults to `undefined`.
*/
constructor: function(config) {
} else if (!me.useArrows) {
cls.push(Ext.baseCSSPrefix + 'tree-no-lines');
}
-
- if (!me.store || Ext.isObject(me.store) && !me.store.isStore) {
+
+ if (Ext.isString(me.store)) {
+ me.store = Ext.StoreMgr.lookup(me.store);
+ } else if (!me.store || Ext.isObject(me.store) && !me.store.isStore) {
me.store = Ext.create('Ext.data.TreeStore', Ext.apply({}, me.store || {}, {
root: me.root,
fields: me.fields,
model: me.model,
folderSort: me.folderSort
}));
- }
- else if (me.root) {
+ } else if (me.root) {
me.store = Ext.data.StoreManager.lookup(me.store);
me.store.setRootNode(me.root);
if (me.folderSort !== undefined) {
});
me.relayEvents(me.store, [
-<span id='Ext-tree.Panel-event-beforeload'> /**
+<span id='Ext-tree-Panel-event-beforeload'> /**
</span> * @event beforeload
* Event description
* @param {Ext.data.Store} store This Store
*/
'beforeload',
-<span id='Ext-tree.Panel-event-load'> /**
+<span id='Ext-tree-Panel-event-load'> /**
</span> * @event load
* Fires whenever the store reads data from a remote data source.
* @param {Ext.data.store} this
]);
me.store.on({
-<span id='Ext-tree.Panel-event-itemappend'> /**
+<span id='Ext-tree-Panel-event-itemappend'> /**
</span> * @event itemappend
* Fires when a new child node is appended to a node in the tree.
* @param {Tree} tree The owner tree
*/
append: me.createRelayer('itemappend'),
-<span id='Ext-tree.Panel-event-itemremove'> /**
+<span id='Ext-tree-Panel-event-itemremove'> /**
</span> * @event itemremove
* Fires when a child node is removed from a node in the tree
* @param {Tree} tree The owner tree
*/
remove: me.createRelayer('itemremove'),
-<span id='Ext-tree.Panel-event-itemmove'> /**
+<span id='Ext-tree-Panel-event-itemmove'> /**
</span> * @event itemmove
* Fires when a node is moved to a new location in the tree
* @param {Tree} tree The owner tree
*/
move: me.createRelayer('itemmove'),
-<span id='Ext-tree.Panel-event-iteminsert'> /**
+<span id='Ext-tree-Panel-event-iteminsert'> /**
</span> * @event iteminsert
* Fires when a new child node is inserted in a node in tree
* @param {Tree} tree The owner tree
*/
insert: me.createRelayer('iteminsert'),
-<span id='Ext-tree.Panel-event-beforeitemappend'> /**
+<span id='Ext-tree-Panel-event-beforeitemappend'> /**
</span> * @event beforeitemappend
* Fires before a new child is appended to a node in this tree, return false to cancel the append.
* @param {Tree} tree The owner tree
*/
beforeappend: me.createRelayer('beforeitemappend'),
-<span id='Ext-tree.Panel-event-beforeitemremove'> /**
+<span id='Ext-tree-Panel-event-beforeitemremove'> /**
</span> * @event beforeitemremove
* Fires before a child is removed from a node in this tree, return false to cancel the remove.
* @param {Tree} tree The owner tree
*/
beforeremove: me.createRelayer('beforeitemremove'),
-<span id='Ext-tree.Panel-event-beforeitemmove'> /**
+<span id='Ext-tree-Panel-event-beforeitemmove'> /**
</span> * @event beforeitemmove
* Fires before a node is moved to a new location in the tree. Return false to cancel the move.
* @param {Tree} tree The owner tree
*/
beforemove: me.createRelayer('beforeitemmove'),
-<span id='Ext-tree.Panel-event-beforeiteminsert'> /**
+<span id='Ext-tree-Panel-event-beforeiteminsert'> /**
</span> * @event beforeiteminsert
* Fires before a new child is inserted in a node in this tree, return false to cancel the insert.
* @param {Tree} tree The owner tree
*/
beforeinsert: me.createRelayer('beforeiteminsert'),
-<span id='Ext-tree.Panel-event-itemexpand'> /**
+<span id='Ext-tree-Panel-event-itemexpand'> /**
</span> * @event itemexpand
* Fires when a node is expanded.
* @param {Node} this The expanding node
*/
expand: me.createRelayer('itemexpand'),
-<span id='Ext-tree.Panel-event-itemcollapse'> /**
+<span id='Ext-tree-Panel-event-itemcollapse'> /**
</span> * @event itemcollapse
* Fires when a node is collapsed.
* @param {Node} this The collapsing node
*/
collapse: me.createRelayer('itemcollapse'),
-<span id='Ext-tree.Panel-event-beforeitemexpand'> /**
+<span id='Ext-tree-Panel-event-beforeitemexpand'> /**
</span> * @event beforeitemexpand
* Fires before a node is expanded.
* @param {Node} this The expanding node
*/
beforeexpand: me.createRelayer('beforeitemexpand'),
-<span id='Ext-tree.Panel-event-beforeitemcollapse'> /**
+<span id='Ext-tree-Panel-event-beforeitemcollapse'> /**
</span> * @event beforeitemcollapse
* Fires before a node is collapsed.
* @param {Node} this The collapsing node
me.callParent();
me.relayEvents(me.getView(), [
-<span id='Ext-tree.Panel-event-checkchange'> /**
+<span id='Ext-tree-Panel-event-checkchange'> /**
</span> * @event checkchange
* Fires when a node with a checkbox's checked property changes
* @param {Ext.data.Model} node The node who's checked property was changed
this.view.setRootNode(root);
},
-<span id='Ext-tree.Panel-method-getChecked'> /**
+<span id='Ext-tree-Panel-method-getChecked'> /**
</span> * Retrieve an array of checked records.
* @return {Array} An array containing the checked records
*/
return rec.get('checked');
},
-<span id='Ext-tree.Panel-method-expandAll'> /**
+<span id='Ext-tree-Panel-method-expandAll'> /**
</span> * Expand all nodes
* @param {Function} callback (optional) A function to execute when the expand finishes.
* @param {Object} scope (optional) The scope of the callback function
}
},
-<span id='Ext-tree.Panel-method-collapseAll'> /**
+<span id='Ext-tree-Panel-method-collapseAll'> /**
</span> * Collapse all nodes
* @param {Function} callback (optional) A function to execute when the collapse finishes.
* @param {Object} scope (optional) The scope of the callback function
}
},
-<span id='Ext-tree.Panel-method-expandPath'> /**
+<span id='Ext-tree-Panel-method-expandPath'> /**
</span> * Expand the tree to the path of a particular node.
- * @param {String} path The path to expand
+ * @param {String} path The path to expand. The path should include a leading separator.
* @param {String} field (optional) The field to get the data from. Defaults to the model idProperty.
- * @param {String} separator (optional) A separator to use. Defaults to <tt>'/'</tt>.
+ * @param {String} separator (optional) A separator to use. Defaults to `'/'`.
* @param {Function} callback (optional) A function to execute when the expand finishes. The callback will be called with
* (success, lastNode) where success is if the expand was successful and lastNode is the last node that was expanded.
* @param {Object} scope (optional) The scope of the callback function
current.expand(false, expander);
},
-<span id='Ext-tree.Panel-method-selectPath'> /**
+<span id='Ext-tree-Panel-method-selectPath'> /**
</span> * Expand the tree to the path of a particular node, then selecti t.
- * @param {String} path The path to select
+ * @param {String} path The path to select. The path should include a leading separator.
* @param {String} field (optional) The field to get the data from. Defaults to the model idProperty.
- * @param {String} separator (optional) A separator to use. Defaults to <tt>'/'</tt>.
+ * @param {String} separator (optional) A separator to use. Defaults to `'/'`.
* @param {Function} callback (optional) A function to execute when the select finishes. The callback will be called with
* (bSuccess, oLastNode) where bSuccess is if the select was successful and oLastNode is the last node that was expanded.
* @param {Object} scope (optional) The scope of the callback function
keys = path.split(separator);
last = keys.pop();
- me.expandPath(keys.join('/'), field, separator, function(success, node){
+ me.expandPath(keys.join(separator), field, separator, function(success, node){
var doSuccess = false;
if (success && node) {
node = node.findChild(field, last);
Ext.callback(callback, scope || me, [doSuccess, node]);
}, me);
}
-});</pre></pre></body></html>
\ No newline at end of file
+});
+</pre>
+</body>
+</html>