📄 tree.js
字号:
} var meta = zkau.getMeta($parentByType(n, "Tree")); if (meta) meta._openItem(n, null, open != false);};/** Called when _onDocCtxMnu is called. */zkTrow.onrtclk = function (cmp) { var meta = zkau.getMetaByType(cmp, "Tree"); if (meta && !meta._isSelected(cmp)) meta.doclick(null, cmp);};/* Paginate. * @param cmp treerow or tree * @param rows all rows of the tree, null if cmp is treerow */zkTrow._pgnt = function (cmp, rows) { var head = $e(cmp.id + "!ph"), tail = $e(cmp.id + "!pt"); var pgc = getZKAttr(cmp, "pgc"); if (pgc > 1) { var ncol = (rows ? rows[0].cells: cmp.cells).length; var pgsz = getZKAttr(cmp, "pgsz"); var pgi = getZKAttr(cmp, "pgi"); if (pgi > 0) { //head visible if (!head || pgc != getZKAttr(head, "pgc") || pgi != getZKAttr(head, "pgi")) { if (!head) head = zkTrow._genpg(cmp, rows, false); zk.setInnerHTML($e(cmp.id + "!pch"), Tree_paging(cmp, pgc, pgi, pgsz, false)); } else zkTrow._fixpgspan(head, ncol); head = null; //so it won't be removed later } if (pgi < pgc - 1) { //tail visible if (!tail || pgc != getZKAttr(tail, "pgc") || pgi != getZKAttr(tail, "pgi")) { if (!tail) tail = zkTrow._genpg(cmp, rows, true); zk.setInnerHTML($e(cmp.id + "!pct"), Tree_paging(cmp, pgc, pgi, pgsz, true)); } else zkTrow._fixpgspan(tail, ncol); tail = null; //so it won't be removed later } } zk.remove(head); zk.remove(tail);};/** Fixes colspan of pagination. */zkTrow._fixpgspan = function (n, ncol) { if (ncol != getZKAttr(n, "ncol")) { n.colSpan = ncol; setZKAttr(n, "ncol", ncol); }};/** Generate the pagination tags. * @param end whether it is the end pagination or the begin pagination */zkTrow._genpg = function (cmp, rows, end) { var tr = document.createElement("TR"); tr.id = cmp.id + (end ? "!pt": "!ph"); if (!rows //!rows => parent is treeitem && (!zkTree.isOpen(cmp) || !$visible(cmp))) //not visible if ancestor is not open tr.style.display = "none" var td = document.createElement("TD"); tr.appendChild(td); if (rows) { if (end) zk.insertAfter(tr, rows[rows.length - 1]); else zk.insertBefore(tr, rows[0]); } else { setZKAttr(tr, "gpitem", getZKAttr(cmp, "pitem")); zk.insertAfter(tr, end ? zkTrow._lastKid(cmp): cmp); } //clone images with z.fc //Note: we don't clone the last image if (!rows) { var n = zk.nextSibling(end ? cmp: tr, "TR"); if (n.id.endsWith("!ph")) n = zk.nextSibling(n, "TR"); //skip head var last = null; for (n = n.cells[0].firstChild, n = n && n.firstChild ? n.firstChild: n; //TD/DIV/icons n; n = n.nextSibling) { if (n.getAttribute) { if (!getZKAttr(n, "fc") && !n.id.endsWith("!cm")) break; if (last) { var cloned = last.cloneNode(true); if (cloned.id.endsWith("!cm")) { cloned.id = ""; cloned.style.visibility = "hidden"; } td.appendChild(cloned); } last = n; } } } //create content var cnt = document.createElement("SPAN"); cnt.id = cmp.id + "!pc" + (end ? 't': 'h'); cnt.className = "treeitem-paging"; cnt.style.width = "100%"; td.appendChild(cnt); return tr;};zkTrow._genimg = function (uri, js) { return '<img src="'+zk.getUpdateURI("/web/zul/img/tree/" + uri + "-off.gif") +'" onmouseover="zkau.onimgover(event)" onmouseout="zkau.onimgout(event)" align="top" onclick="' +js+',event)"/>';};/** page up or down * @param index -9: top page, -1: up one page, -2: up two pages * 9: bottom, 1: down one page, 2: down two pages */zkTrow._onpg = function (index, evt) { if (!evt) evt = window.event; var n = $outer($parent(Event.element(evt))); zkau.send({uuid: getZKAttr(n, "tchsib"), cmd: "onPaging", data: [index == -9 ? 0: index == 9 ? $int(getZKAttr(n, "pgc")) - 1: $int(getZKAttr(n, "pgi")) + index]});};/** Zoom in or out * @param index -1: zoom out, 1: zoom in */zkTrow._onzoom = function (index, evt) { if (!evt) evt = window.event; var n = $outer($parent(Event.element(evt))); zkau.send({uuid: getZKAttr(n, "tchsib"), cmd: "onPageSize", data: [$int(getZKAttr(n, "pgsz")) + index]});};/** Returns the last direct child. * It returns itself if there is no child at all. */zkTrow._lastKid = function (row) { var uuid = getZKAttr(row, "pitem"); var n = row; do { var r = n.nextSibling; if ($tag(r) == "TR") { var pid = getZKAttr(r, "gpitem"); if (uuid != pid) return row; //not my child row = r = zkTrow._lastKid(r); } } while (n = r); return row;}if (!zk.safari) { zkTcfc = {}; //checkmark or the first hyperlink of treecell zkTcfc.init = function (cmp) { zk.listen(cmp, "focus", zkSel.cmonfocus); zk.listen(cmp, "blur", zkSel.cmonblur); }}zkTcop = {}; //the image as the open buttonzkTcop.init = function (cmp) { zk.listen(cmp, "click", zkTree.ontoggle);};zk.addModuleInit(function () { //Treecol //init it later because zul.js might not be loaded yet zkTcol = {} Object.extend(zkTcol, zulHdr); /** Resize the column. */ zkTcol.resize = function (col1, icol, wd1, keys) { var meta = zkau.getMeta($parentByType(col1, "Tree")); if (meta) meta.resizeCol( $parentByType(col1, "Tcols"), icol, col1, wd1, keys); }; //Treecols zkTcols = zulHdrs;});//Upgrade AU Engine to handle treeitem and treechildrenvar _zktrx = {};_zktrx.dom = {}; //Map(treechildren/treeitem, [treerows])_zktrx.sib = {}; //Map(treechildren, treerow)_zktrx.au = {};_zktrx.init = function (trow, attr) { var pt = getZKAttr(trow, attr); if (pt) { var dom = _zktrx.dom[pt]; if (!dom) dom = _zktrx.dom[pt] = []; dom.push(trow.id); if ("pitem" == attr) _zktrx.sib[pt] = trow.id; }};_zktrx.cleanup = function (trow, attr) { var pt = getZKAttr(trow, attr); var dom = pt ? _zktrx.dom[pt]: null; if (dom) { dom.remove(trow.id); if (!dom.length) delete _zktrx.dom[pt]; if ("pitem" == attr) delete _zktrx.sib[pt]; }};_zktrx.au.outer = zkau.cmd1.outer;zkau.cmd1.outer = function (uuid, cmp, html) { if (!cmp) { var dom = _zktrx.dom[uuid]; if (dom) { for (var j = dom.length; --j >= 0;) { var id = dom[j]; var trow = $e(id); _zktrx._rmKids(trow); //deep first since it cleanup dom if (j == 0) { uuid = id; cmp = trow; } else { _zktrx.au.rm(id, trow); } } dom.length = 0; //clear } else { //Bug 1753216: it causes invalidate if adding more than one page //of treeitems to an empty treechild var sib = _zktrx.sib[uuid]; if (sib) { //update an empty treechildren _zktrx.au.addAft(uuid, $e(sib), html); return; //done } } } if (cmp && html.trim()) //if treechildren has no children at all _zktrx.au.outer(uuid, cmp, html);};_zktrx.au.addAft = zkau.cmd1.addAft;zkau.cmd1.addAft = function (uuid, cmp, html) { if (!cmp) { cmp = $e(_zktrx.sib[uuid]); if (cmp) cmp = zkTrow._lastKid(cmp); } _zktrx.au.addAft(uuid, cmp, html);};_zktrx.au.addBfr = zkau.cmd1.addBfr;zkau.cmd1.addBfr = function (uuid, cmp, html) { _zktrx.au.addBfr(uuid, cmp ? cmp: $e(_zktrx.sib[uuid]), html);};_zktrx.au.addChd = zkau.cmd1.addChd;zkau.cmd1.addChd = function (uuid, cmp, html) { if (cmp) _zktrx.au.addChd(uuid, cmp, html); else _zktrx.au.addAft(uuid, $e(_zktrx.sib[uuid]), html);};_zktrx.au.rm = zkau.cmd1.rm;zkau.cmd1.rm = function (uuid, cmp) { var dom = _zktrx.dom[uuid]; if (dom) { for (var j = dom.length; --j >= 0;) { var id = dom[j]; var trow = $e(id); _zktrx._rmKids(trow); //deep first since it cleanup dom _zktrx.au.rm(id, trow); } dom.length = 0; //clear (just in case) return; } _zktrx.au.rm(uuid, cmp);};_zktrx._rmKids = function (trow) { var tchsib = trow ? getZKAttr(trow, "tchsib"): null; if (tchsib) zkau.cmd1.rm(tchsib, $e(tchsib));};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -