?? tree.js
字號:
break;case 63232:case 38:var prevNode=Zapatec.Tree.Utils.getPrevNode(this.prevSelected);if(prevNode){prevNode.select();Zapatec.Utils.stopEvent(evt);}break;case 63233:case 40:var nextNode=Zapatec.Tree.Utils.getNextNode(this.prevSelected);if(nextNode){nextNode.select();Zapatec.Utils.stopEvent(evt);}break;}}if(this.config.editable&&this.editInline.selectedNode){if(res.charCode==9){var otherNode=null;if(evt.shiftKey){otherNode=Zapatec.Tree.Utils.getPrevNode(this.editInline.selectedNode);}else{otherNode=Zapatec.Tree.Utils.getNextNode(this.editInline.selectedNode);}if(otherNode){this.editInline.saveAndHide();otherNode.select();this.editInline.show(otherNode.getLinkToLabelElement());Zapatec.Utils.stopEvent(evt);}}}};Zapatec.Tree.prototype.leave=function(){if(this.prevSelected&&this.config.deselectOnLeave){this.prevSelected.deselect();}this.isActive=false;this.fireEvent("leave");};Zapatec.Tree.Node=function(objArgs){Zapatec.Tree.Node.SUPERconstructor.call(this,objArgs);};Zapatec.Tree.Node.id="Zapatec.Tree.Node";Zapatec.inherit(Zapatec.Tree.Node,Zapatec.Widget);Zapatec.Tree.Node.prototype.configure=function(objArgs){this.defineConfigOption('theme',null);this.defineConfigOption('tree',null);this.defineConfigOption('parentNode',null);this.defineConfigOption('level');this.defineConfigOption('isRootNode',false);Zapatec.Tree.Node.SUPERclass.configure.call(this,objArgs);if(this.config.tree==null){Zapatec.Log({description:"No reference to parent Zapatec.Tree instance! Aborting."});throw("No reference to parent Zapatec.Tree instance! Aborting.");}};Zapatec.Tree.Node.prototype.init=function(config){this.expandedIcon=null;this.collapsedIcon=null;this.fetchingIcon=null;this.elementIcon=null;this.isCreated=false;this.isChildrenCreated=false;this.isFetching=false;this.data=null;this.children=[];this.labelContainer=null;this.iconElement=null;this.signElement=null;this.childrenContainer=null;this.checkboxContainer=null;this.oldSource=null;this.oldSourceType=null;Zapatec.Tree.Node.SUPERclass.init.call(this,config);if(!this.config.isRootNode){this.config.tree.allNodes.push(this);}this.loadData();this.config.source=null;this.config.sourceType=null;if(!this.config.isRootNode){if(this.data.attributes&&this.data.attributes['class']){var md=null;if(md=this.data.attributes['class'].match(/zpLoad(JSON|HTML|XML)=([^ $]*)/)){this.data.source=md[2];if(md[1]=="JSON"){this.data.sourceType="json/url";}else if(md[1]=="HTML"){this.data.sourceType="html/url";}else if(md[1]=="XML"){this.data.sourceType="xml/url";}else{this.data.source=null;this.data.sourceType=null;}}}if(this.data.source){if(this.data.children==null||this.data.loadAlways){this.data.children=[];}this.config.source=this.data.source;this.config.sourceType=this.data.sourceType;}}};Zapatec.Tree.Node.prototype.addStandardEventListeners=function(){Zapatec.Tree.Node.SUPERclass.addStandardEventListeners.call(this);this.addEventListener('fetchSourceStart',function(){this.isFetching=true;this.putIcons();});this.addEventListener("fetchSourceEnd",function(){this.isFetching=false;this.putIcons();});var tmpFunc=function(){if(this.data&&this.data.loadAlways){for(var ii=this.children.length-1;ii>=0;ii--){this.children[ii].destroy(true);}this.data.children=[];if(this.childrenContainer){this.childrenContainer.innerHTML="";}}};this.addEventListener('loadDataStart',tmpFunc);this.addEventListener('fetchSourceStart',tmpFunc);this.addEventListener('loadDataEnd',function(){this.oldSource=this.config.source;this.oldSourceType=this.config.sourceType;this.config.source=null;this.config.sourceType=null;if(!this.config.isRootNode&&this.data.isExpanded){this.expand();}if(this.data&&this.data.loadAlways){this.config.source=this.oldSource;this.config.sourceType=this.oldSourceType;}});this.addEventListener("fetchSourceError",function(objError){if(this.data&&this.data.loadAlways){this.config.source=this.oldSourceType;this.config.sourceType=this.oldSourceType;}Zapatec.Log({description:"Error happend while retrieving branch content: "+objError.errorCode+" "+objError.errorDescription});});};Zapatec.Tree.Node.prototype.create=function(){if(this.isCreated||this.data==null||this.config.isRootNode){return null;}this.fireEvent("beforeCreate");var content=[];content.push("<div class='tree-item");content.push(this.hasSubtree()?" tree-item-more ":"");content.push("'");this.labelContainerId="zpTree"+this.config.tree.id+"Node"+this.id+"LabelContainer";content.push(" id='");content.push(this.labelContainerId);content.push("'>");content.push("<table class='tree-table' cellpadding='0' cellspacing='0'><tbody><tr>");if(this.hasSubtree()){content.push("<td id='");content.push("zpTree");content.push(this.config.tree.id);content.push("Node");content.push(this.id);content.push("SignElement");content.push("'");content.push(" onclick='Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"onSignClick\")'");content.push(" ondblclick='Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"onSignDblclick\")'");content.push(" class='tgb ");content.push(this.data.isExpanded?"minus":"plus");content.push("'>");content.push("<img src='");content.push(Zapatec.zapatecPath);content.push("zpempty.gif' class='tgb' alt=''/>");content.push("</td>");}if(this.config.tree.config.defaultIcons||(this.hasSubtree()&&(this.data.collapsedIcon||this.data.expandedIcon||this.data.fetchingIcon)||!this.hasSubtree()&&this.data.elementIcon)){content.push("<td");content.push(" id='zpTree");content.push(this.config.tree.id);content.push("Node");content.push(this.id);content.push("IconElement'");content.push(" onclick='Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"onIconClick\")'");content.push(" ondblclick='Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"onIconDblclick\")'");content.push(" oncontextmenu='return Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"onIconContextMenu\", event)'");content.push(" onmouseup='return Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"onIconMouseup\", event)'");content.push(" class='icon ");if(this.config.tree.config.defaultIcons){content.push(this.config.tree.config.defaultIcons);}content.push("'>");if(this.data.collapsedIcon||this.data.expandedIcon||this.data.fetchingIcon||this.data.elementIcon){if(this.hasSubtree()){if(this.data.expandedIcon){content.push(this.data.expandedIcon);}if(this.data.collapsedIcon){content.push(this.data.collapsedIcon);}if(this.data.fetchingIcon){content.push(this.data.fetchingIcon);}}else{content.push(this.data.elementIcon);}}else{content.push("<img src='");content.push(Zapatec.zapatecPath);content.push("zpempty.gif' class='icon' alt=''/>");}content.push("</td>");}if(this.config.tree.config.putCheckboxes){content.push("<td");content.push(" id='zpTree");content.push(this.config.tree.id);content.push("Node");content.push(this.id);content.push("CheckboxElement'");content.push(" onclick='Zapatec.Widget.callMethod(");content.push(this.id);content.push(", \"checkboxChanged\")'");content.push(" class='checkboxContainer ");content.push(this.data.isChecked?"checkboxChecked":"checkboxUnchecked")content.push("'>");content.push("<img src='");content.push(Zapatec.zapatecPath);content.push("zpempty.gif' class='checkboxContainer' alt=''/>");content.push("</td>");}var attributes=Zapatec.Utils.clone(this.data.attributes);if(!attributes){attributes={"id":"zpTree"+this.config.tree.id+"Node"+this.id+"LabelElement","onclick":"Zapatec.Widget.callMethod("+this.id+", \"onLabelClick\")","ondblclick":"Zapatec.Widget.callMethod("+this.id+", \"onLabelDblclick\")","oncontextmenu":"return Zapatec.Widget.callMethod("+this.id+", \"onLabelContextMenu\", event)","onmouseup":"Zapatec.Widget.callMethod("+this.id+", \"onLabelMouseup\", event)","class":"label "+(this.data.children?"menutitle":"submenu")};}else{if(attributes.id==null){attributes.id="zpTree"+this.config.tree.id+"Node"+this.id+"LabelElement";}if(attributes['class']!=null){attributes['class']+=" label "+(this.data.children?"menutitle":"submenu");}else{attributes['class']="label "+(this.data.children?"menutitle":"submenu");}if(attributes.onclick!=null){attributes.onclick="Zapatec.Widget.callMethod("+this.id+", \"onLabelClick\");"+this.data.attributes.onclick;}else{attributes.onclick="Zapatec.Widget.callMethod("+this.id+", \"onLabelClick\");";}if(attributes.ondblclick!=null){attributes.ondblclick="Zapatec.Widget.callMethod("+this.id+", \"onLabelDblclick\");"+this.data.attributes.ondblclick;}else{attributes.ondblclick="Zapatec.Widget.callMethod("+this.id+", \"onLabelDblclick\");";}if(attributes.oncontextmenu!=null){attributes.oncontextmenu="return Zapatec.Widget.callMethod("+this.id+", \"onLabelContextMenu\", event);"+this.data.attributes.oncontextmenu;}else{attributes.oncontextmenu="return Zapatec.Widget.callMethod("+this.id+", \"onLabelContextMenu\", event);";}if(attributes.onmouseup!=null){attributes.onmouseup="Zapatec.Widget.callMethod("+this.id+", \"onLabelMouseup\", event);"+this.data.attributes.onmouseup;}else{attributes.onmouseup="Zapatec.Widget.callMethod("+this.id+", \"onLabelMouseup\", event);";}}content.push("<td");if(Zapatec.is_ie){content.push(" unselectable='on'");}for(var attrName in attributes){var tmp=attributes[attrName];if(typeof(tmp)!='string'){tmp+="";}if(tmp){var attrVal=tmp.replace(/'/g,"\\'");content.push(" "+attrName+"='"+attrVal+"'");}}content.push(">");if(this.config.tree.config.prevCompatible){content.push("<span class='label'>");}if(this.data.label){content.push(this.data.label);}if(this.config.tree.config.prevCompatible){content.push("</span>");}content.push("</td></tr></tbody></table></div>");if(this.data.isSelected){this.select();}if(this.hasSubtree()){content.push("<div class='tree' id='");content.push("zpTree");content.push(this.config.tree.id);content.push("Node");content.push(this.id);content.push("ChildrenContainer");content.push("'");content.push("></div>");}this.fireEvent("afterCreate");return content.join("");};Zapatec.Tree.Node.prototype.hasSubtree=function(){return this.data.children!=null;};Zapatec.Tree.Node.prototype.afterCreate=function(){if(this.isCreated){return false;}this.labelContainer=document.getElementById(this.labelContainerId);if(this.data.collapsedIcon||this.data.expandedIcon||this.data.fetchingIcon||this.data.elementIcon){this.iconElement=this.labelContainer.childNodes[0].childNodes[0].childNodes[0].childNodes[1];}if(this.hasSubtree()){this.signElement=this.iconElement?this.iconElement.previousSibling:this.labelContainer.childNodes[0].childNodes[0].childNodes[0].childNodes[0];this.childrenContainer=this.labelContainer.nextSibling;}if(this.config.tree.config.putBackReferences&&this.getLinkToLabelElement()){Zapatec.Utils.createProperty(this.labelElement,"zpTreeNode",this);}if(this.data.collapsedIcon||this.data.expandedIcon||this.data.fetchingIcon||this.data.elementIcon){if(this.iconElement&&this.iconElement.childNodes.length!=0){var tmp=[this.iconElement.childNodes[0],this.iconElement.childNodes[1],this.iconElement.childNodes[2]];if(this.hasSubtree()){for(var ii=0;ii<2;ii++){var tmpIcon=tmp[ii];if(!tmpIcon){continue;}if(tmpIcon.className.indexOf("collapsedIcon")>=0){this.collapsedIcon=tmpIcon;}else if(tmpIcon.className.indexOf("expandedIcon")>=0){this.expandedIcon=tmpIcon;}else if(tmpIcon.className.indexOf("fetchingIcon")>=0){this.fetchingIcon=tmpIcon;}}}else{this.elementIcon=tmp[0];}this.putIcons();}}this.isCreated=true;this.putLines();if(this.data.isExpanded||this.config.tree.expandToLevelNum>this.config.level){this.expand();}else{this.collapse();}if(this.config.tree.config.putCheckboxes){var tmp=this.labelContainer.childNodes[0].childNodes[0].childNodes[0];this.checkboxContainer=tmp.childNodes[tmp.childNodes.length-2];}if(this.data.isSelected){this.select();}if(this.config.tree.config.createWholeDOM){this.createChildren();}};Zapatec.Tree.Node.prototype.getLinkToLabelElement=function(){if(this.config.isRootNode){return null;}if(this.labelElement){return this.labelElement;}this.labelElement=this.labelContainer.childNodes[0].childNodes[0].childNodes[0].lastChild;return this.labelElement;};Zapatec.Tree.Node.prototype.createChildren=function(){if(!this.hasSubtree()||this.hasSubtree()&&this.isChildrenCreated==true){return null;}if(this.config.tree.config.quick||this.config.isRootNode){this.initChildren();}var content=[];for(var ii=0;ii<this.children.length;ii++){content.push(this.children[ii].create());}Zapatec.Transport.setInnerHtml({html:content.join(""),container:this.childrenContainer});this.isChildrenCreated=true;if(this.config.tree.config.createWholeDOM){for(var ii=0;ii<this.children.length;ii++){this.children[ii].afterCreate();}}};Zapatec.Tree.Node.prototype.initChildren=function(){if(!this.data.children){return null;}for(var ii=0;ii<this.data.children.length;ii++){this.children.push(new Zapatec.Tree.Node({tree:this.config.tree,parentNode:this,level:this.config.level+1,source:this.data.children[ii],sourceType:"json",eventListeners:this.config.eventListeners}));}};Zapatec.Tree.Node.prototype.isFirstNodeInBranch=function(){return this.config.isRootNode||this.labelContainer.parentNode.firstChild==this.labelContainer;};Zapatec.Tree.Node.prototype.isLastNodeInBranch=function(){return this.config.isRootNode||this.labelContainer.parentNode.lastChild==this.labelContainer||this.labelContainer.parentNode.lastChild==this.childrenContainer;};Zapatec.Tree.Node.prototype.checkboxChanged=function(value){if(typeof(value)=='undefined'){value=!this.data.isChecked;}this.data.isChecked=value;if(this.isCreated){this.checkboxContainer.className="checkboxContainer "+(this.data.isChecked?"checkboxChecked":"checkboxUnchecked");}if(this.hasSubtree()&&this.config.tree.config.dependantCheckboxes){var toCheck=this.data.isChecked;for(var ii=0;ii<this.children.length;ii++){this.children[ii].checkboxChanged(toCheck);}}if(this.config.parentNode&&!this.config.parentNode.config.isRootNode){this.config.parentNode.updateCheckbox();}};Zapatec.Tree.Node.prototype.updateCheckbox=function(){if(this.config.isRootNode){return;}if(!this.config.tree.config.dependantCheckboxes){return;}var stats=this.getChildrenStats();if(stats.hasChecked&&!stats.hasUnchecked){this.data.isChecked=true;if(this.isCreated){this.checkboxContainer.className="checkboxContainer checkboxChecked";}}else if(stats.hasChecked&&stats.hasUnchecked){this.data.isChecked=null;if(this.isCreated){this.checkboxContainer.className="checkboxContainer checkboxHalfChecked";}}else if(!stats.hasChecked&&stats.hasUnchecked){this.data.isChecked=false;if(this.isCreated){this.checkboxContainer.className="checkboxContainer checkboxUnchecked";}}if(this.config.parentNode&&!this.config.parentNode.config.isRootNode){this.config.parentNode.updateCheckbox();}};Zapatec.Tree.Node.prototype.getChildrenStats=function(){var res={hasChecked:false,hasUnchecked:false}if(this.hasSubtree()&&this.data.children.length>0){for(var ii=0;ii<this.children.length;ii++){var stats=this.children[ii].getChildrenStats();res.hasChecked=res.hasChecked||stats.hasChecked;res.hasUnchecked=res.hasUnchecked||stats.hasUnchecked;if(res.hasChecked&&res.hasUnchecked){break;}}}else{res.hasChecked=this.data.isChecked;res.hasUnchecked=!this.data.isChecked;}return res;}Zapatec.Tree.Node.prototype.putLines=function(){if(this.config.isRootNode){return null;}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -