X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..2e847cf21b8ab9d15fa167b315ca5b2fa92638fc:/docs/source/TreeNodeUI.html diff --git a/docs/source/TreeNodeUI.html b/docs/source/TreeNodeUI.html index e1e86edb..5820fcc9 100644 --- a/docs/source/TreeNodeUI.html +++ b/docs/source/TreeNodeUI.html @@ -1,5 +1,6 @@ + The source code @@ -32,7 +33,7 @@ Ext.tree.TreeNodeUI.prototype = { removeChild : function(node){ if(this.rendered){ this.ctNode.removeChild(node.ui.getEl()); - } + } }, // private @@ -55,14 +56,14 @@ Ext.tree.TreeNodeUI.prototype = { // private onDisableChange : function(node, state){ this.disabled = state; - if (this.checkbox) { - this.checkbox.disabled = state; - } + if (this.checkbox) { + this.checkbox.disabled = state; + } if(state){ this.addClass("x-tree-node-disabled"); }else{ this.removeClass("x-tree-node-disabled"); - } + } }, // private @@ -113,7 +114,7 @@ Ext.tree.TreeNodeUI.prototype = { */ removeClass : function(cls){ if(this.elNode){ - Ext.fly(this.elNode).removeClass(cls); + Ext.fly(this.elNode).removeClass(cls); } }, @@ -122,12 +123,12 @@ Ext.tree.TreeNodeUI.prototype = { if(this.rendered){ this.holder = document.createElement("div"); this.holder.appendChild(this.wrap); - } + } }, // private fireEvent : function(){ - return this.node.fireEvent.apply(this.node, arguments); + return this.node.fireEvent.apply(this.node, arguments); }, // private @@ -135,10 +136,7 @@ Ext.tree.TreeNodeUI.prototype = { this.node.on("move", this.onMove, this); if(this.node.disabled){ - this.addClass("x-tree-node-disabled"); - if (this.checkbox) { - this.checkbox.disabled = true; - } + this.onDisableChange(this.node, true); } if(this.node.hidden){ this.hide(); @@ -176,7 +174,7 @@ Ext.tree.TreeNodeUI.prototype = { this.node.hidden = false; if(this.wrap){ this.wrap.style.display = ""; - } + } }, // private @@ -223,13 +221,15 @@ Ext.tree.TreeNodeUI.prototype = { if(this.disabled){ return; } - if(this.checkbox){ - this.toggleCheck(); - } - if(!this.animating && this.node.isExpandable()){ - this.node.toggle(); + if(this.fireEvent("beforedblclick", this.node, e) !== false){ + if(this.checkbox){ + this.toggleCheck(); + } + if(!this.animating && this.node.isExpandable()){ + this.node.toggle(); + } + this.fireEvent("dblclick", this.node, e); } - this.fireEvent("dblclick", this.node, e); }, onOver : function(e){ @@ -243,8 +243,8 @@ Ext.tree.TreeNodeUI.prototype = { // private onCheckChange : function(){ var checked = this.checkbox.checked; - // fix for IE6 - this.checkbox.defaultChecked = checked; + // fix for IE6 + this.checkbox.defaultChecked = checked; this.node.attributes.checked = checked; this.fireEvent('checkchange', this.node, checked); }, @@ -260,12 +260,12 @@ Ext.tree.TreeNodeUI.prototype = { startDrop : function(){ this.dropping = true; }, - + // delayed drop so the click event doesn't get fired on a drop - endDrop : function(){ + endDrop : function(){ setTimeout(function(){ this.dropping = false; - }.createDelegate(this), 50); + }.createDelegate(this), 50); }, // private @@ -306,7 +306,7 @@ Ext.tree.TreeNodeUI.prototype = { blur : function(){ try{ this.anchor.blur(); - }catch(e){} + }catch(e){} }, // private @@ -321,7 +321,7 @@ Ext.tree.TreeNodeUI.prototype = { } this.animating = true; this.updateExpandIcon(); - + ct.slideIn('t', { callback : function(){ this.animating = false; @@ -368,12 +368,15 @@ Ext.tree.TreeNodeUI.prototype = { // private getContainer : function(){ - return this.ctNode; + return this.ctNode; }, - // private +
/** + * Returns the element which encapsulates this node. + * @return {HtmlElement} The DOM element. The default implementation uses a <li>. + */ getEl : function(){ - return this.wrap; + return this.wrap; }, // private @@ -388,15 +391,15 @@ Ext.tree.TreeNodeUI.prototype = { // private onRender : function(){ - this.render(); + this.render(); }, // private render : function(bulkRender){ var n = this.node, a = n.attributes; - var targetNode = n.parentNode ? + var targetNode = n.parentNode ? n.parentNode.ui.getContainer() : n.ownerTree.innerCt.dom; - + if(!this.rendered){ this.rendered = true; @@ -413,7 +416,7 @@ Ext.tree.TreeNodeUI.prototype = { if(a.qtipTitle){ this.textNode.setAttribute("ext:qtitle", a.qtipTitle); } - } + } }else if(a.qtipCfg){ a.qtipCfg.target = Ext.id(this.textNode); Ext.QuickTips.register(a.qtipCfg); @@ -434,10 +437,10 @@ Ext.tree.TreeNodeUI.prototype = { // add some indent caching, this helps performance when rendering a large tree this.indentMarkup = n.parentNode ? n.parentNode.ui.getChildIndent() : ''; - var cb = typeof a.checked == 'boolean'; - - var href = a.href ? a.href : Ext.isGecko ? "" : "#"; - var buf = ['
  • ', + var cb = Ext.isBoolean(a.checked), + nel, + href = a.href ? a.href : Ext.isGecko ? "" : "#", + buf = ['
  • ', '',this.indentMarkup,"", '', '', @@ -447,13 +450,12 @@ Ext.tree.TreeNodeUI.prototype = { '', "
  • "].join(''); - var nel; if(bulkRender !== true && n.nextSibling && (nel = n.nextSibling.ui.getEl())){ this.wrap = Ext.DomHelper.insertHtml("beforeBegin", nel, buf); }else{ this.wrap = Ext.DomHelper.insertHtml("beforeEnd", targetNode, buf); } - + this.elNode = this.wrap.childNodes[0]; this.ctNode = this.wrap.childNodes[1]; var cs = this.elNode.childNodes; @@ -463,8 +465,8 @@ Ext.tree.TreeNodeUI.prototype = { var index = 3; if(cb){ this.checkbox = cs[3]; - // fix for IE6 - this.checkbox.defaultChecked = this.checkbox.checked; + // fix for IE6 + this.checkbox.defaultChecked = this.checkbox.checked; index++; } this.anchor = cs[index]; @@ -478,7 +480,7 @@ Ext.tree.TreeNodeUI.prototype = { getAnchor : function(){ return this.anchor; }, - +
    /** * Returns the text node. * @return {HtmlNode} The DOM text node. @@ -486,7 +488,7 @@ Ext.tree.TreeNodeUI.prototype = { getTextEl : function(){ return this.textNode; }, - +
    /** * Returns the icon <img> element. * @return {HtmlElement} The DOM image element. @@ -501,15 +503,17 @@ Ext.tree.TreeNodeUI.prototype = { * @return {Boolean} The checked flag. */ isChecked : function(){ - return this.checkbox ? this.checkbox.checked : false; + return this.checkbox ? this.checkbox.checked : false; }, // private updateExpandIcon : function(){ if(this.rendered){ - var n = this.node, c1, c2; - var cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow"; - var hasChild = n.hasChildNodes(); + var n = this.node, + c1, + c2, + cls = n.isLast() ? "x-tree-elbow-end" : "x-tree-elbow", + hasChild = n.hasChildNodes(); if(hasChild || n.attributes.expandable){ if(n.expanded){ cls += "-minus"; @@ -530,7 +534,7 @@ Ext.tree.TreeNodeUI.prototype = { } }else{ if(!this.wasLeaf){ - Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-leaf"); + Ext.fly(this.elNode).replaceClass("x-tree-node-expanded", "x-tree-node-collapsed"); delete this.c1; delete this.c2; this.wasLeaf = true; @@ -543,7 +547,7 @@ Ext.tree.TreeNodeUI.prototype = { } } }, - + // private onIdChange: function(id){ if(this.rendered){ @@ -554,8 +558,8 @@ Ext.tree.TreeNodeUI.prototype = { // private getChildIndent : function(){ if(!this.childIndent){ - var buf = []; - var p = this.node; + var buf = [], + p = this.node; while(p){ if(!p.isRoot || (p.isRoot && p.ownerTree.rootVisible)){ if(!p.isLast()) { @@ -574,8 +578,8 @@ Ext.tree.TreeNodeUI.prototype = { // private renderIndent : function(){ if(this.rendered){ - var indent = ""; - var p = this.node.parentNode; + var indent = "", + p = this.node.parentNode; if(p){ indent = p.ui.getChildIndent(); } @@ -591,23 +595,14 @@ Ext.tree.TreeNodeUI.prototype = { if(this.elNode){ Ext.dd.Registry.unregister(this.elNode.id); } - delete this.elNode; - delete this.ctNode; - delete this.indentNode; - delete this.ecNode; - delete this.iconNode; - delete this.checkbox; - delete this.anchor; - delete this.textNode; - - if (this.holder){ - delete this.wrap; - Ext.removeNode(this.holder); - delete this.holder; - }else{ - Ext.removeNode(this.wrap); - delete this.wrap; - } + + Ext.each(['textnode', 'anchor', 'checkbox', 'indentNode', 'ecNode', 'iconNode', 'elNode', 'ctNode', 'wrap', 'holder'], function(el){ + if(this[el]){ + Ext.fly(this[el]).remove(); + delete this[el]; + } + }, this); + delete this.node; } };