diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-19 14:52:21 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-02-19 14:52:21 +0000 |
commit | d1772d410235592b482e3b08b1863f6624d9fe6b (patch) | |
tree | accfb4b99c32e5e435089f8023d62e67a6951603 /deluge/ui/web/js/extjs/ext-extensions/tree/TreeGridNodeUI.js | |
parent | Initial commit. (diff) | |
download | deluge-d1772d410235592b482e3b08b1863f6624d9fe6b.tar.xz deluge-d1772d410235592b482e3b08b1863f6624d9fe6b.zip |
Adding upstream version 2.0.3.upstream/2.0.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'deluge/ui/web/js/extjs/ext-extensions/tree/TreeGridNodeUI.js')
-rw-r--r-- | deluge/ui/web/js/extjs/ext-extensions/tree/TreeGridNodeUI.js | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/deluge/ui/web/js/extjs/ext-extensions/tree/TreeGridNodeUI.js b/deluge/ui/web/js/extjs/ext-extensions/tree/TreeGridNodeUI.js new file mode 100644 index 0000000..e58a801 --- /dev/null +++ b/deluge/ui/web/js/extjs/ext-extensions/tree/TreeGridNodeUI.js @@ -0,0 +1,149 @@ +/** + * Ext JS Library 3.4.0 + * Copyright(c) 2006-2011 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/** + * @class Ext.ux.tree.TreeGridNodeUI + * @extends Ext.tree.TreeNodeUI + */ +Ext.ux.tree.TreeGridNodeUI = Ext.extend(Ext.tree.TreeNodeUI, { + isTreeGridNodeUI: true, + + renderElements: function(n, a, targetNode, bulkRender) { + var t = n.getOwnerTree(), + cols = t.columns, + c = cols[0], + i, + buf, + len; + + this.indentMarkup = n.parentNode + ? n.parentNode.ui.getChildIndent() + : ''; + + buf = [ + '<tbody class="x-tree-node">', + '<tr ext:tree-node-id="', + n.id, + '" class="x-tree-node-el x-tree-node-leaf ', + a.cls, + '">', + '<td class="x-treegrid-col">', + '<span class="x-tree-node-indent">', + this.indentMarkup, + '</span>', + '<img src="', + this.emptyIcon, + '" class="x-tree-ec-icon x-tree-elbow" />', + '<img src="', + a.icon || this.emptyIcon, + '" class="x-tree-node-icon', + a.icon ? ' x-tree-node-inline-icon' : '', + a.iconCls ? ' ' + a.iconCls : '', + '" unselectable="on" />', + '<a hidefocus="on" class="x-tree-node-anchor" href="', + a.href ? a.href : '#', + '" tabIndex="1" ', + a.hrefTarget ? ' target="' + a.hrefTarget + '"' : '', + '>', + '<span unselectable="on">', + c.tpl ? c.tpl.apply(a) : a[c.dataIndex] || c.text, + '</span></a>', + '</td>', + ]; + + for (i = 1, len = cols.length; i < len; i++) { + c = cols[i]; + buf.push( + '<td class="x-treegrid-col ', + c.cls ? c.cls : '', + '">', + '<div unselectable="on" class="x-treegrid-text"', + c.align ? ' style="text-align: ' + c.align + ';"' : '', + '>', + c.tpl ? c.tpl.apply(a) : a[c.dataIndex], + '</div>', + '</td>' + ); + } + + buf.push( + '</tr><tr class="x-tree-node-ct"><td colspan="', + cols.length, + '">', + '<table class="x-treegrid-node-ct-table" cellpadding="0" cellspacing="0" style="table-layout: fixed; display: none; width: ', + t.innerCt.getWidth(), + 'px;"><colgroup>' + ); + for (i = 0, len = cols.length; i < len; i++) { + buf.push( + '<col style="width: ', + cols[i].hidden ? 0 : cols[i].width, + 'px;" />' + ); + } + buf.push('</colgroup></table></td></tr></tbody>'); + + if (bulkRender !== true && n.nextSibling && n.nextSibling.ui.getEl()) { + this.wrap = Ext.DomHelper.insertHtml( + 'beforeBegin', + n.nextSibling.ui.getEl(), + buf.join('') + ); + } else { + this.wrap = Ext.DomHelper.insertHtml( + 'beforeEnd', + targetNode, + buf.join('') + ); + } + + this.elNode = this.wrap.childNodes[0]; + this.ctNode = this.wrap.childNodes[1].firstChild.firstChild; + var cs = this.elNode.firstChild.childNodes; + this.indentNode = cs[0]; + this.ecNode = cs[1]; + this.iconNode = cs[2]; + this.anchor = cs[3]; + this.textNode = cs[3].firstChild; + }, + + // private + animExpand: function(cb) { + this.ctNode.style.display = ''; + Ext.ux.tree.TreeGridNodeUI.superclass.animExpand.call(this, cb); + }, +}); + +Ext.ux.tree.TreeGridRootNodeUI = Ext.extend(Ext.tree.TreeNodeUI, { + isTreeGridNodeUI: true, + + // private + render: function() { + if (!this.rendered) { + this.wrap = this.ctNode = this.node.ownerTree.innerCt.dom; + this.node.expanded = true; + } + + if (Ext.isWebKit) { + // weird table-layout: fixed issue in webkit + var ct = this.ctNode; + ct.style.tableLayout = null; + (function() { + ct.style.tableLayout = 'fixed'; + }.defer(1)); + } + }, + + destroy: function() { + if (this.elNode) { + Ext.dd.Registry.unregister(this.elNode.id); + } + delete this.node; + }, + + collapse: Ext.emptyFn, + expand: Ext.emptyFn, +}); |