⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bs_treeelement.class.js

📁 在线电子表格SpreadSheet 在线电子表格SpreadSheet
💻 JS
📖 第 1 页 / 共 2 页
字号:
/********************************************************************************************* BlueShoes Framework; This file is part of the php application framework.* NOTE: This code is stripped (obfuscated). To get the clean documented code goto *       www.blueshoes.org and register for the free open source *DEVELOPER* version or *       buy the commercial version.*       *       In case you've already got the developer version, then this is one of the few *       packages/classes that is only available to *PAYING* customers.*       To get it go to www.blueshoes.org and buy a commercial version.* * @copyright www.blueshoes.org* @author    Samuel Blume <sam at blueshoes dot org>* @author    Andrej Arn <andrej at blueshoes dot org>*/function Bs_TreeElement() {this.id;this.parent;this._tree;this.caption;this.url;this.target;this.linkStyle;this.divStyle;this.onClick;this.isOpen = false;this.visible = true;this.isChecked = 0;this.checkboxName;this.radioButtonSelected;this._checkboxObject;this._level = 0;this._children = new Array;this._undoneChildren;this.imageDir;this.imageHeight;this.icon;this.beforeIconSpan;this.beforeCaptionSpan;this.afterCaptionSpan;this.dataContainer;this._attachedEvents;this._isOutrendered = false;this._errorArray;this.getThis = function() {return this;}this.addChild = function(treeElement) {treeElement.parent = this;if (typeof(this._children) != 'object') this._children = new Array;if (this._children.push) {this._children.push(treeElement);} else {this._children[this._children.length] = treeElement;}treeElement._level = this._level +1;this._updateLevelAndParent(treeElement);this._tree._clearingHouse[treeElement.id] = treeElement;if (this._isOutrendered) {this.render(true, true);}}this.addChildByArray = function(elementData) {var treeElement = this._tree._createTreeElement(elementData);this.addChild(treeElement);return treeElement;}this.isChild = function(elementId, bubble) {for (var i=0; i<this._children.length; i++) {if (this._children[i].id == elementId) return true;if (bubble) {if (this._children[i].isChild(elementId, true)) return true;}}return false;}this.setCaption = function(caption) {this.caption = caption;if (this._isOutrendered) {var span = document.getElementById(this._tree._objectId + '_e_' + this.id + '_caption2');if (span) span.innerHTML = caption;}}this.render = function(omitDivTags, putIntoPage, lookAhead) {if (typeof(this._tree.stopWatch) == 'object') this._tree.stopWatch.takeTime('Bs_TreeElement.render() for id: ' + this.id + ' in level: ' + this._level);if (typeof(lookAhead) == 'undefined') {lookAhead = this._tree.lookAhead;}if ((this._tree._pseudoElement == this) && !this._tree.showPseudoElement && (lookAhead != -1)) {lookAhead++;}var imageDir    = this._getVar('imageDir');var imageHeight = this._getVar('imageHeight');var out      = new Array();var outI     = 0;var evalStr  = '';if (!omitDivTags) {out[outI++] = '<span id="' + this._tree._objectId + '_e_' + this.id + '"';out[outI++] = ' style="';if (!this.visible) {out[outI++] = 'display:none;';}out[outI++] = '">';}if ((this._level) > 0 || (this._tree.showPseudoElement)) {out[outI++] = '<nobr>';out[outI++] = '<div style="float:none;"';out[outI++] = ' id="' + this._tree._objectId + '_e_' + this.id + '_drag"';if (this._tree.draggable) {out[outI++] = ' onDragStart="Bs_Objects['+this._tree._id+'].executeOnElement(\'' + this.id + '\', \'fireEvent\', Array(\'onDragStart\'));"';out[outI++] = ' onDragEnter="Bs_Objects['+this._tree._id+'].executeOnElement(\'' + this.id + '\', \'fireEvent\', Array(\'onDragEnter\'));"';out[outI++] = ' onDragOver="Bs_Objects['+this._tree._id+'].executeOnElement(\'' + this.id + '\', \'fireEvent\', Array(\'onDragOver\'));"';out[outI++] = ' onDrop="Bs_Objects['+this._tree._id+'].executeOnElement(\'' + this.id + '\', \'fireEvent\', Array(\'onDrop\'));"';}out[outI++] = '>';out[outI++] = '<div style="overflow:visible; height:' + imageHeight + '; ' + this._getVar('divStyle') + '">';var level = this._level;if (!this._tree.showPseudoElement) --level;var obj = null;var outTemp = '';for (var i=0; i<level; i++) {if (!obj) {obj = this.parent;} else {obj = obj.parent;}if (obj.hasSiblingsDown()) {var img = 'line1';} else {var img = 'empty';}outTemp = '<img src="' + imageDir + img + '.gif" height="' + imageHeight + '" border="0" align="top">' + outTemp;}out[outI++] = outTemp;if (this.hasSiblingsDown()) {var imgNumber = 3;} else {var imgNumber = 2;}if (this.hasVisibleChildren()) {if ((this._level == 0) || (!this._tree.showPseudoElement && (this._level == 1) && ((this._tree.useAutoSequence && (this.id == 1)) || (!this._tree.useAutoSequence && true)))) {if (this.hasSiblingsDown()) {imgNumber++;} else {imgNumber--;}}if (this.isOpen) {var plusImg = 'minus' + imgNumber;var onClick = 'Close';} else {var plusImg = 'plus' + imgNumber;var onClick = 'Open';}} else {var plusImg = 'line' + imgNumber;var onClick = false;}if (onClick) {var onClickStr = 'onClick="Bs_Objects['+this._tree._id+'].elementToggleOpenClose(\'' + this.id + '\');"';} else {var onClickStr = '';}if (this.onClick) {var onClick = this.onClick;        onClick = onClick.replace(/__this\.id__/g, this.id); //replace the string __this.id__ with the actual id (int).out[outI++] = '<span style="cursor:pointer; cursor:hand;" onClick="' + onClick + '">';}out[outI++] = '<img id="' + this._tree._objectId + '_e_' + this.id + '_openClose" src="' + imageDir + plusImg + '.gif" height="' + imageHeight + '" border="0" ' + onClickStr + ' align="middle"';out[outI++] = ' style="vertical-align:' + ((imageHeight > 16) ? 'middle' : 'top') + '">';if (this.beforeIconSpan) {out[outI++] = "<span>" + this.beforeIconSpan + "</span>";}if (this.url) {var hRef = '<a href="' + this.url + '"';if (this.target) {hRef += ' target="' + this.target + '"';hRef += ' style="'  + this._getLinkStyle() + '"';}hRef += '>';}var folderIconId = this._tree._objectId + '_e_' + this.id + '_folder';if (this._getVar('useFolderIcon')) {if (hRef) out[outI++] = hRef;switch (typeof(this.icon)) {case 'undefined':if (this._tree.useLeaf && !this.hasChildren()) {var folderImg = 'leaf';} else {var folderImg = 'folder';folderImg += (this.isOpen) ? 'Open' : 'Closed';}out[outI++] = '<img id="' + folderIconId + '" src="' + imageDir + folderImg + '.gif" height="' + imageHeight + '" border="0" align="top">';break;case 'bool':case 'boolean':break;case 'string':if (this.icon != 'false') {out[outI++] = '<img id="' + folderIconId + '" src="';if (!this._iconHasPath(this.icon)) out[outI++] = imageDir;out[outI++] = this.icon;if (!this._iconHasExtension(this.icon)) out[outI++] = '.gif';out[outI++] = '" height="' + imageHeight + '" border="0" align="top">';}}if (hRef) out[outI++] = '</a>';}if (this.beforeCaptionSpan) {out[outI++] = "<span>" + this.beforeCaptionSpan + "</span>";}if (this._tree.useRadioButton) {out[outI++] = '<input type="radio"';if (this._tree.radioButtonName) {out[outI++] = ' name="' + this._tree.radioButtonName + '"';} else {out[outI++] = ' name="' + 'bsTreeRad_' + this._tree._objectId + '"';}if (true) {out[outI++] = ' style="height:16px;"';}if (this.radioButtonSelected) {out[outI++] = ' checked';}out[outI++] = '>';}if (this._tree.useCheckboxSystem) {var checkboxSpan = this.checkboxName + 'Span';var checkboxObj  = this.checkboxName + 'Obj';out[outI++] = '&nbsp;<span id="' + checkboxSpan + '">';var t = new Bs_Checkbox();t.objectName = checkboxObj;t.checkboxName = this.checkboxName;t.value = this.isChecked;if (this._getVar('checkboxSystemGuiNochange')) {t.guiNochange = true;}var chkImagDir = this._getVar('checkboxSystemImgDir');if (chkImagDir) {t.imgDir = chkImagDir;} else {t.imgDir     = "/_bsJavascript/components/checkbox/img/win2k_noBorder/";}t.imgWidth   = '13';t.imgHeight  = '13';if (this._tree.checkboxSystemWalkTree) {t.attachOnClick('Bs_Objects['+this._tree._id+'].elementCheckboxEvent(\'' + this.id + '\', ' + checkboxObj + '.value);');}eval(checkboxObj + ' = t;');this._checkboxObject = t;evalStr += checkboxObj + ".draw('" + checkboxSpan + "');";out[outI++] = '</span>';}out[outI++] = '&nbsp;';out[outI++] = '<span id="' + this._tree._objectId + '_e_' + this.id + '_caption"';if (this.onClick || this.hasEventAttached('onClickCaption')) {out[outI++] = ' style="cursor:pointer; cursor:hand;"';} else {out[outI++] = ' style="cursor:default;"';}out[outI++] = ' onClick="Bs_Objects['+this._tree._id+'].executeOnElement(\'' + this.id + '\', \'fireEvent\', Array(\'onClickCaption\'));">';if (hRef) out[outI++] = hRef;out[outI++] = '<span id="' + this._tree._objectId + '_e_' + this.id + '_caption2">' + this.caption + '</span>';if (hRef) out[outI++] = '</a>';out[outI++] = '</span>';if (this.onClick) {out[outI++] = '</span>';}out[outI++] = '</div>';if (this.afterCaptionSpan) {out[outI++] = '<div style="overflow:visible;">' + this.afterCaptionSpan + '</div>';} else {}out[outI++] = '</div>';out[outI++] = '</nobr>';}out[outI++] = '<span id="' + this._tree._objectId + '_e_' + this.id + '_children"';if (!this.isOpen) {out[outI++] = ' style="display:none;"';}out[outI++] = '>';if (this.isOpen || (lookAhead > 0) || (lookAhead == -1)) {for (var i=0; i<this._children.length; i++) {if (lookAhead == -1) {var newLookAhead = -1;} else {if (this.isOpen) {var newLookAhead = lookAhead;} else {var newLookAhead = lookAhead -1;}}var t = this._children[i].render(false, false, newLookAhead);out[outI++] = t[0];evalStr    += t[1];}}out[outI++] = '</span>';if (!omitDivTags) {out[outI++] = '</span>';}out[outI++] = "\n";this._isOutrendered = true;var content = new Array(out.join(''), evalStr);if (putIntoPage) {var doc = document.getElementById(this._tree._objectId + '_e_' + this.id);if (doc != null) {doc.innerHTML = content[0];if (content[1] != '') {eval(content[1]);}return true;} else {return false;}} else {return content;}}this.reset = function() {this.caption           = null;this.url               = null;this.target            = null;this.onClick           = null;this.isOpen            = false;this.isChecked         = 0;this.checkboxName      = null;this.beforeIconSpan    = null;this.beforeCaptionSpan = null;this.afterCaptionSpan  = null;}this.initByArray = function(a, tree, level) {this._tree   = tree;this._level  = level;if (typeof(this._tree.stopWatch) == 'object') this._tree.stopWatch.takeTime('Bs_TreeElement.initByArray()');if (this._tree.useAutoSequence && (level > 0)) {this.id      = ++this._tree._elementSequence;} else {if (typeof(a['id']) == 'undefined') {this._addError('tree error: useAutoSequence is set to false, but for an array element there is no id defined.');return false;}this.id = a['id'];}if (typeof(a['caption'])             != 'undefined') this.caption             = a['caption'];if (typeof(a['url'])                 != 'undefined') this.url                 = a['url'];if (typeof(a['target'])              != 'undefined') this.target              = a['target'];if (typeof(a['onClick'])             != 'undefined') this.onClick             = a['onClick'];if (typeof(a['isOpen'])              != 'undefined') this.isOpen              = a['isOpen'];if (typeof(a['isChecked'])           != 'undefined') this.isChecked           = parseInt(a['isChecked']);if (typeof(a['visible'])             != 'undefined') this.visible             = a['visible'];if (typeof(a['icon'])                != 'undefined') this.icon                = a['icon'];if (typeof(a['imageDir'])            != 'undefined') this.imageDir            = a['imageDir'];if (typeof(a['beforeIconSpan'])      != 'undefined') this.beforeIconSpan      = a['beforeIconSpan'];if (typeof(a['beforeCaptionSpan'])   != 'undefined') this.beforeCaptionSpan   = a['beforeCaptionSpan'];if (typeof(a['afterCaptionSpan'])    != 'undefined') this.afterCaptionSpan    = a['afterCaptionSpan'];if (typeof(a['radioButtonSelected']) != 'undefined') this.radioButtonSelected = a['radioButtonSelected'];if (typeof(a['dataContainer'])       != 'undefined') this.dataContainer       = a['dataContainer'];if (typeof(a['checkboxName']) != 'undefined') {this.checkboxName  = a['checkboxName'];} else {if (this._tree.useCheckboxSystem) {this.checkboxName = 'bsTreeChk_' + this._tree._objectId + '_' + this.id;}}if (typeof(a['onClickCaption'])    != 'undefined') {this.attachEvent('onClickCaption', a['onClickCaption']);}if (typeof(a['onChangeCheckbox'])    != 'undefined') {this.attachEvent('onChangeCheckbox', a['onChangeCheckbox']);}if (typeof(a['events']) != 'undefined') {for (ev in a['events']) {this.attachEvent(ev, a['events'][ev]);}}return true;}this.exportAsArray = function(withChildren) {var ret = new Array();if (typeof(this.id)                       != 'undefined') ret['id']                       = this.id;if (typeof(this.caption)                  != 'undefined') ret['caption']                  = this.caption;if (typeof(this.url)                      != 'undefined') ret['url']                      = this.url;if (typeof(this.target)                   != 'undefined') ret['target']                   = this.target;if (typeof(this.onClick)                  != 'undefined') ret['onClick']                  = this.onClick;if (typeof(this.isOpen)                   != 'undefined') ret['isOpen']                   = this.isOpen;if (typeof(this.isChecked)                != 'undefined') ret['isChecked']                = this.isChecked;if (typeof(this.visible)                  != 'undefined') ret['visible']                  = this.visible;if (typeof(this.icon)                     != 'undefined') ret['icon']                     = this.icon;if (typeof(this.imageDir)                 != 'undefined') ret['imageDir']                 = this.imageDir;if (typeof(this.beforeIconSpan)           != 'undefined') ret['beforeIconSpan']           = this.beforeIconSpan;if (typeof(this.afterCaptionSpan)         != 'undefined') ret['afterCaptionSpan']         = this.afterCaptionSpan;if (typeof(this.radioButtonSelected)      != 'undefined') ret['radioButtonSelected']      = this.radioButtonSelected;if (typeof(this.dataContainer)            != 'undefined') ret['dataContainer']            = this.dataContainer;if (typeof(this.checkboxName)             != 'undefined') ret['checkboxName']             = this.checkboxName;if (typeof(this.beforeCaptionSpan)        != 'undefined') ret['beforeCaptionSpan']        = this.beforeCaptionSpan;if (withChildren) {ret['children'] = new Array();for (var i=0; i<this._children.length; i++) {ret['children'][ret['children'].length] = this._children[i].exportAsArray(true);}}return ret;}this.updateObjectByArray = function(a) {this.reset();if (a['caption'])            this.caption            = a['caption'];if (a['url'])                this.url                = a['url'];if (a['target'])             this.target             = a['target'];if (a['onClick'])            this.onClick            = a['onClick'];if (a['isOpen'])             this.isOpen             = a['isOpen'];if (a['isChecked'])          this.isChecked          = a['isChecked'];if (a['imageDir'])           this.imageDir           = a['imageDir'];if (a['checkboxName']) {this.checkboxName  = a['checkboxName'];} else {if (this._tree.useCheckboxSystem) {this.checkboxName = 'bsTreeCheckbox' + this.id;}}if (a['beforeIconSpan'])     this.beforeIconSpan     = a['beforeIconSpan'];if (a['beforeCaptionSpan'])  this.beforeCaptionSpan  = a['beforeCaptionSpan'];if (a['afterCaptionSpan'])   this.afterCaptionSpan   = a['afterCaptionSpan'];}this.getJavascriptCode = function(varName, recursive) {var ret = "";if ((this._tree.useAutoSequence && (this.id > 1))|| (!this._tree.useAutoSequence && !this.parent)) {} else {ret += varName + " = new Array();\n";if (!this._tree.useAutoSequence) {ret += varName + "['id'] = \"" + this.id + "\";\n";}if (this.caption)           ret += varName + "['caption']            = \"" + this.caption            + "\";\n";if (this.url)               ret += varName + "['url']                = \"" + this.url                + "\";\n";if (this.target)            ret += varName + "['target']             = \"" + this.target             + "\";\n";if (this.onClick) {        //var onClick = this.onClick.replace(/'/g,  "\'");        var onClick = this.onClick.replace(/"/g,  '\"');ret += varName + "['onClick']            = \"" + onClick            + "\";\n";}if (this.imageDir)          ret += varName + "['imageDir']           = \"" + this.imageDir          + "\";\n";if (this.isOpen)            ret += varName + "['isOpen']             = '" + this.isOpen             + "';\n";if (this.isChecked)         ret += varName + "['isChecked']          = '" + this.isChecked          + "';\n";if (this.checkboxName)      ret += varName + "['checkboxName']       = '" + this.checkboxName       + "';\n";if (this.icon)              ret += varName + "['icon']               = \"" + this.icon              + "\";\n";if (this.beforeIconSpan)    ret += varName + "['beforeIconSpan']     = \"" + this.beforeIconSpan     + "\";\n";if (this.beforeCaptionSpan) ret += varName + "['beforeCaptionSpan']  = \"" + this.beforeCaptionSpan  + "\";\n";if (this.afterCaptionSpan)  ret += varName + "['afterCaptionSpan']   = \"" + this.afterCaptionSpan   + "\";\n";varName += "['children']";}if (recursive) {if (this._children.length > 0) {ret += varName + " = new Array();\n";for (var i=0; i<this._children.length; i++) {ret += this._children[i].getJavascriptCode(varName + "[" + i + "]", recursive);}}}return ret;}this.setActive = function() {var activeElement = this._tree.getActiveElement();if (activeElement != false) {activeElement.unsetActive();}this._tree.setActiveElement(this);this._highlight();}this._highlight = function() {var elmSetActive = document.getElementById(this._tree._objectId + '_e_' + this.id + '_caption');if (elmSetActive != null) {elmSetActive.style.backgroundColor = this._getVar('captionBgColor');} else {setTimeout("Bs_Objects["+this._tree._id+"].executeOnElement('" + this.id + "', '_highlight');", 800);}}this.unsetActive = function() {var e = document.getElementById(this._tree._objectId + '_e_' + this.id + '_caption');if (e != null) e.style.backgroundColor = 'transparent';}this.toggleOpenClose = function() {if (this.isOpen) {if (this.hasEventAttached('onBeforeClose')) {var status = this.fireEvent('onBeforeClose');if (status != true) return;}this.close();if (this.hasEventAttached('onAfterClose')) this.fireEvent('onAfterClose');} else {if (this.hasEventAttached('onBeforeOpen')) {var status = this.fireEvent('onBeforeOpen');if (status != true) return;}this.open();if (this.hasEventAttached('onAfterOpen')) this.fireEvent('onAfterOpen');}}this.open = function(checkParents) {if (this.isOpen) return;this.isOpen = true;if (true || !doRender) {if (this._isOutrendered) {var d = document.getElementById(this._tree._objectId + '_e_' + this.id + '_children');d.style.display = 'block';this._switchIconsOnToggleOpenClose();} else {if (checkParents) {this._renderParentsUp();}this.render(true, true);}}if (this._tree.autoCollapse) {var sib = this.getSiblings();for (var i=0; i<sib.length; i++) {if (sib[i].id != this.id) {sib[i].close();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -