<html>\r
<head>\r
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \r
<title>The source code</title>\r
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
// private\r
onDisableChange : function(node, state){\r
this.disabled = state;\r
- if (this.checkbox) {\r
- this.checkbox.disabled = state;\r
- } \r
+ if (this.checkbox) {\r
+ this.checkbox.disabled = state;\r
+ } \r
if(state){\r
this.addClass("x-tree-node-disabled");\r
}else{\r
this.node.on("move", this.onMove, this);\r
\r
if(this.node.disabled){\r
- this.addClass("x-tree-node-disabled");\r
- if (this.checkbox) {\r
- this.checkbox.disabled = true;\r
- } \r
+ this.onDisableChange(this.node, true); \r
}\r
if(this.node.hidden){\r
this.hide();\r
if(this.disabled){\r
return;\r
}\r
- if(this.checkbox){\r
- this.toggleCheck();\r
- }\r
- if(!this.animating && this.node.isExpandable()){\r
- this.node.toggle();\r
+ if(this.fireEvent("beforedblclick", this.node, e) !== false){\r
+ if(this.checkbox){\r
+ this.toggleCheck();\r
+ }\r
+ if(!this.animating && this.node.isExpandable()){\r
+ this.node.toggle();\r
+ }\r
+ this.fireEvent("dblclick", this.node, e);\r
}\r
- this.fireEvent("dblclick", this.node, e);\r
},\r
\r
onOver : function(e){\r
// private\r
onCheckChange : function(){\r
var checked = this.checkbox.checked;\r
- // fix for IE6\r
- this.checkbox.defaultChecked = checked; \r
+ // fix for IE6\r
+ this.checkbox.defaultChecked = checked; \r
this.node.attributes.checked = checked;\r
this.fireEvent('checkchange', this.node, checked);\r
},\r
return this.ctNode; \r
},\r
\r
- // private\r
+<div id="method-Ext.tree.TreeNodeUI-getEl"></div>/**\r
+ * Returns the element which encapsulates this node.\r
+ * @return {HtmlElement} The DOM element. The default implementation uses a <code><li></code>.\r
+ */\r
getEl : function(){\r
return this.wrap; \r
},\r
// add some indent caching, this helps performance when rendering a large tree\r
this.indentMarkup = n.parentNode ? n.parentNode.ui.getChildIndent() : '';\r
\r
- var cb = typeof a.checked == 'boolean';\r
-\r
- var href = a.href ? a.href : Ext.isGecko ? "" : "#";\r
- var buf = ['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ', a.cls,'" unselectable="on">',\r
+ var cb = Ext.isBoolean(a.checked),\r
+ nel,\r
+ href = a.href ? a.href : Ext.isGecko ? "" : "#",\r
+ buf = ['<li class="x-tree-node"><div ext:tree-node-id="',n.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ', a.cls,'" unselectable="on">',\r
'<span class="x-tree-node-indent">',this.indentMarkup,"</span>",\r
'<img src="', this.emptyIcon, '" class="x-tree-ec-icon x-tree-elbow" />',\r
'<img src="', a.icon || this.emptyIcon, '" class="x-tree-node-icon',(a.icon ? " x-tree-node-inline-icon" : ""),(a.iconCls ? " "+a.iconCls : ""),'" unselectable="on" />',\r
'<ul class="x-tree-node-ct" style="display:none;"></ul>',\r
"</li>"].join('');\r
\r
- var nel;\r
if(bulkRender !== true && n.nextSibling && (nel = n.nextSibling.ui.getEl())){\r
this.wrap = Ext.DomHelper.insertHtml("beforeBegin", nel, buf);\r
}else{\r
var index = 3;\r
if(cb){\r
this.checkbox = cs[3];\r
- // fix for IE6\r
- this.checkbox.defaultChecked = this.checkbox.checked; \r
+ // fix for IE6\r
+ this.checkbox.defaultChecked = this.checkbox.checked;\r
index++;\r
}\r
this.anchor = cs[index];\r
// private\r
updateExpandIcon : function(){\r
if(this.rendered){\r
- var n = this.node, c1, c2;\r
- var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow";\r
- var hasChild = n.hasChildNodes();\r
+ var n = this.node, \r
+ c1, \r
+ c2,\r
+ cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow",\r
+ hasChild = n.hasChildNodes();\r
if(hasChild || n.attributes.expandable){\r
if(n.expanded){\r
cls += "-minus";\r
// private\r
getChildIndent : function(){\r
if(!this.childIndent){\r
- var buf = [];\r
- var p = this.node;\r
+ var buf = [],\r
+ p = this.node;\r
while(p){\r
if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){\r
if(!p.isLast()) {\r
// private\r
renderIndent : function(){\r
if(this.rendered){\r
- var indent = "";\r
- var p = this.node.parentNode;\r
+ var indent = "",\r
+ p = this.node.parentNode;\r
if(p){\r
indent = p.ui.getChildIndent();\r
}\r
if(this.elNode){\r
Ext.dd.Registry.unregister(this.elNode.id);\r
}\r
- delete this.elNode;\r
- delete this.ctNode;\r
- delete this.indentNode;\r
- delete this.ecNode;\r
- delete this.iconNode;\r
- delete this.checkbox;\r
- delete this.anchor;\r
- delete this.textNode;\r
\r
- if (this.holder){\r
- delete this.wrap;\r
- Ext.removeNode(this.holder);\r
- delete this.holder;\r
- }else{\r
- Ext.removeNode(this.wrap);\r
- delete this.wrap;\r
- }\r
+ Ext.each(['textnode', 'anchor', 'checkbox', 'indentNode', 'ecNode', 'iconNode', 'elNode', 'ctNode', 'wrap', 'holder'], function(el){\r
+ if(this[el]){\r
+ Ext.fly(this[el]).remove();\r
+ delete this[el];\r
+ }\r
+ }, this);\r
+ delete this.node;\r
}\r
};\r
\r