\r
<div id="cfg-Ext.tree.TreeLoader-paramOrder"></div>/**\r
* @cfg {Array/String} paramOrder Defaults to <tt>undefined</tt>. Only used when using directFn.\r
- * A list of params to be executed\r
- * server side. Specify the params in the order in which they must be executed on the server-side\r
+ * Specifies the params in the order in which they must be passed to the server-side Direct method\r
* as either (1) an Array of String values, or (2) a String of params delimited by either whitespace,\r
* comma, or pipe. For example,\r
* any of the following would be acceptable:<pre><code>\r
+nodeParameter: 'node',\r
paramOrder: ['param1','param2','param3']\r
-paramOrder: 'param1 param2 param3'\r
-paramOrder: 'param1,param2,param3'\r
-paramOrder: 'param1|param2|param'\r
+paramOrder: 'node param1 param2 param3'\r
+paramOrder: 'param1,node,param2,param3'\r
+paramOrder: 'param1|param2|param|node'\r
</code></pre>\r
*/\r
paramOrder: undefined,\r
* <tt>{@link #paramOrder}</tt> nullifies this configuration.\r
*/\r
paramsAsHash: false,\r
- \r
+\r
<div id="cfg-Ext.tree.TreeLoader-nodeParameter"></div>/**\r
* @cfg {String} nodeParameter The name of the parameter sent to the server which contains\r
* the identifier of the node. Defaults to <tt>'node'</tt>.\r
* This is called automatically when a node is expanded, but may be used to reload\r
* a node (or append new children if the {@link #clearOnLoad} option is false.)\r
* @param {Ext.tree.TreeNode} node\r
- * @param {Function} callback Function to call after the node has been loaded. The \r
+ * @param {Function} callback Function to call after the node has been loaded. The\r
* function is passed the TreeNode which was requested to be loaded.\r
* @param (Object) scope The cope (<code>this</code> reference) in which the callback is executed.\r
* defaults to the loaded TreeNode.\r
},\r
\r
getParams: function(node){\r
- var buf = [], bp = this.baseParams;\r
+ var bp = Ext.apply({}, this.baseParams),\r
+ np = this.nodeParameter,\r
+ po = this.paramOrder;\r
+\r
+ np && (bp[ np ] = node.id);\r
+\r
if(this.directFn){\r
- buf.push(node.id);\r
- if(bp){\r
- if(this.paramOrder){\r
- for(var i = 0, len = this.paramOrder.length; i < len; i++){\r
- buf.push(bp[this.paramOrder[i]]);\r
- }\r
- }else if(this.paramsAsHash){\r
- buf.push(bp);\r
+ var buf = [node.id];\r
+ if(po){\r
+ // reset 'buf' if the nodeParameter was included in paramOrder\r
+ if(np && po.indexOf(np) > -1){\r
+ buf = [];\r
}\r
+\r
+ for(var i = 0, len = po.length; i < len; i++){\r
+ buf.push(bp[ po[i] ]);\r
+ }\r
+ }else if(this.paramsAsHash){\r
+ buf = [bp];\r
}\r
return buf;\r
}else{\r
- var o = Ext.apply({}, bp);\r
- o[this.nodeParameter] = node.id;\r
- return o;\r
+ return bp;\r
}\r
},\r
\r
this.fireEvent("loadexception", this, a.node, response);\r
this.runCallback(a.callback, a.scope || a.node, [a.node]);\r
},\r
- \r
+\r
destroy : function(){\r
+ this.abort();\r
this.purgeListeners();\r
}\r
});</pre> \r