📄 dhtmlxtree.js
字号:
dhtmlXTreeObject.prototype.getLevel=function(itemId){
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
return this._getNodeLevel(temp,0);
};
dhtmlXTreeObject.prototype.setItemCloseable=function(itemId,flag)
{
flag=convertStringToBoolean(flag);
if((itemId)&&(itemId.span))
var temp=itemId;
else
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
temp.closeble=flag;
};
dhtmlXTreeObject.prototype._getNodeLevel=function(itemObject,count){
if(itemObject.parentObject)return this._getNodeLevel(itemObject.parentObject,count+1);
return(count);
};
dhtmlXTreeObject.prototype.hasChildren=function(itemId){
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
else
{
if((this.XMLsource)&&(!temp.XMLload))return true;
else
return temp.childsCount;
};
};
dhtmlXTreeObject.prototype._getLeafCount=function(itemNode){
var a=0;
for(var b=0;b<itemNode.childsCount;b++)
if(itemNode.childNodes[b].childsCount==0)a++;
return a;
}
dhtmlXTreeObject.prototype._fixChildCountLabel=function(itemNode,index){
if(this.childCalc==null)return;
if((itemNode.unParsed)||((!itemNode.XMLload)&&(this.XMLsource)))
{
if(itemNode._acc)
itemNode.span.innerHTML=itemNode.label+this.htmlcA+itemNode._acc+this.htmlcB;
else
itemNode.span.innerHTML=itemNode.label;
return;
}
switch(this.childCalc){
case 1:
if(itemNode.childsCount!=0)
itemNode.span.innerHTML=itemNode.label+this.htmlcA+itemNode.childsCount+this.htmlcB;
else itemNode.span.innerHTML=itemNode.label;
break;
case 2:
var z=this._getLeafCount(itemNode);
if(z!=0)
itemNode.span.innerHTML=itemNode.label+this.htmlcA+z+this.htmlcB;
else itemNode.span.innerHTML=itemNode.label;
break;
case 3:
if(itemNode.childsCount!=0)
{
var bcc=0;
for(var a=0;a<itemNode.childsCount;a++){
if(!itemNode.childNodes[a]._acc)itemNode.childNodes[a]._acc=0;
bcc+=itemNode.childNodes[a]._acc*1;}
bcc+=itemNode.childsCount*1;
itemNode.span.innerHTML=itemNode.label+this.htmlcA+bcc+this.htmlcB;
itemNode._acc=bcc;
}
else{itemNode.span.innerHTML=itemNode.label;itemNode._acc=1;}
if((itemNode.parentObject)&&(itemNode.parentObject!=this.htmlNode))
this._fixChildCountLabel(itemNode.parentObject);
break;
case 4:
if(itemNode.childsCount!=0)
{
var bcc=0;
for(var a=0;a<itemNode.childsCount;a++){
if(!itemNode.childNodes[a]._acc)itemNode.childNodes[a]._acc=1;
bcc+=itemNode.childNodes[a]._acc*1;}
itemNode.span.innerHTML=itemNode.label+this.htmlcA+bcc+this.htmlcB;
itemNode._acc=bcc;
}
else{itemNode.span.innerHTML=itemNode.label;itemNode._acc=1;}
if((itemNode.parentObject)&&(itemNode.parentObject!=this.htmlNode))
this._fixChildCountLabel(itemNode.parentObject);
break;
}
}
dhtmlXTreeObject.prototype.setItemText=function(itemId,newLabel,newTooltip)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
temp.label=newLabel;
temp.span.innerHTML=newLabel;
if(this.childCalc)this._fixChildCountLabel(temp);
temp.span.parentNode.title=newTooltip||"";
};
dhtmlXTreeObject.prototype.refreshItem=function(itemId){
if(!itemId)itemId=this.rootId;
var temp=this._globalIdStorageFind(itemId);
this.deleteChildItems(itemId);
this._loadDynXML(itemId);
};
dhtmlXTreeObject.prototype.setItemImage2=function(itemId,image1,image2,image3){
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
temp.images[1]=image2;
temp.images[2]=image3;
temp.images[0]=image1;
this._correctPlus(temp);
};
dhtmlXTreeObject.prototype.setItemImage=function(itemId,image1,image2)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
if(image2)
{
temp.images[1]=image1;
temp.images[2]=image2;
}
else temp.images[0]=image1;
this._correctPlus(temp);
};
dhtmlXTreeObject.prototype.getSubItems =function(itemId)
{
var temp=this._globalIdStorageFind(itemId,0,1);
if(!temp)return 0;
if(temp.unParsed)
return(this._getSubItemsXML(temp.unParsed));
var z="";
for(i=0;i<temp.childsCount;i++){
if(!z)z=temp.childNodes[i].id;
else z+=this.dlmtr+temp.childNodes[i].id;
}
return z;
};
dhtmlXTreeObject.prototype._getSubItemsXML=function(temp){
var z="";
for(var i=0;i<temp.childNodes.length;i++)
{
if(temp.childNodes[i].tagName=="item")
{
if(!z)z=temp.childNodes[i].getAttribute("id");
else z+=this.dlmtr+temp.childNodes[i].getAttribute("id");
}
}
return z;
}
dhtmlXTreeObject.prototype.getAllSubItems =function(itemId){
return this._getAllSubItems(itemId);
}
dhtmlXTreeObject.prototype.getAllLeafs =function(){
return this._getAllScraggyItems(this.htmlNode);
}
dhtmlXTreeObject.prototype._getAllScraggyItems =function(node)
{
var z="";
for(var i=0;i<node.childsCount;i++)
{
if((node.childNodes[i].unParsed)||(node.childNodes[i].childsCount>0))
{
if(node.childNodes[i].unParsed)
var zb=this._getAllScraggyItemsXML(node.childNodes[i].unParsed,1);
else
var zb=this._getAllScraggyItems(node.childNodes[i])
if(zb)
if(z)z+=this.dlmtr+zb;
else z=zb;
}
else
if(!z)z=node.childNodes[i].id;
else z+=this.dlmtr+node.childNodes[i].id;
}
return z;
};
dhtmlXTreeObject.prototype._getAllScraggyItemsXML=function(node,x){
var z="";
var flag=false;
for(var i=0;i<node.childNodes.length;i++)
if((node.childNodes[i].tagName=="item")){
flag=true;
var zb=this._getAllScraggyItemsXML(node.childNodes[i],0);
if(zb!="")
if(z)
z+=this.dlmtr+zb;
else
z=zb;
}
if((!x)&&(!flag))
if(z)
z+=this.dlmtr+node.getAttribute("id");
else z=node.getAttribute("id");
return z;
}
dhtmlXTreeObject.prototype.getAllFatItems =function(){
return this._getAllFatItems(this.htmlNode);
}
dhtmlXTreeObject.prototype._getAllFatItems =function(node)
{
var z="";
for(var i=0;i<node.childsCount;i++)
{
if((node.childNodes[i].unParsed)||(node.childNodes[i].childsCount>0))
{
if(!z)z=node.childNodes[i].id;
else z+=this.dlmtr+node.childNodes[i].id;
if(node.childNodes[i].unParsed)
var zb=this._getAllFatItemsXML(node.childNodes[i].unParsed,1);
else
var zb=this._getAllFatItems(node.childNodes[i])
if(zb)z+=this.dlmtr+zb;
}
}
return z;
};
dhtmlXTreeObject.prototype._getAllFatItemsXML=function(node,x){
var z="";
var flag=false;
for(var i=0;i<node.childNodes.length;i++)
if((node.childNodes[i].tagName=="item")){
flag=true;
var zb=this._getAllFatItemsXML(node.childNodes[i],0);
if(zb!="")
if(z)
z+=this.dlmtr+zb;
else
z=zb;
}
if((!x)&&(flag))
if(z)
z+=this.dlmtr+node.getAttribute("id");
else z=node.getAttribute("id");
return z;
}
dhtmlXTreeObject.prototype._getAllSubItems =function(itemId,z,node)
{
if(node)temp=node;
else{
var temp=this._globalIdStorageFind(itemId);
};
if(!temp)return 0;
z="";
for(var i=0;i<temp.childsCount;i++)
{
if(!z)z=temp.childNodes[i].id;
else z+=this.dlmtr+temp.childNodes[i].id;
var zb=this._getAllSubItems(0,z,temp.childNodes[i])
if(zb)z+=this.dlmtr+zb;
}
if(temp.unParsed)
z=this._getAllSubItemsXML(itemId,z,temp.unParsed);
return z;
};
dhtmlXTreeObject.prototype._getAllSubItemsXML=function(itemId,z,node){
for(var i=0;i<node.childNodes.length;i++)
if(node.childNodes[i].tagName=="item"){
if(!z)z=node.childNodes[i].getAttribute("id");
else z+=this.dlmtr+node.childNodes[i].getAttribute("id");
z=this._getAllSubItemsXML(itemId,z,node.childNodes[i]);
}
return z;
}
dhtmlXTreeObject.prototype.selectItem=function(itemId,mode,preserve){
mode=convertStringToBoolean(mode);
var temp=this._globalIdStorageFind(itemId);
if((!temp)||(!temp.parentObject))return 0;
if(this._getOpenState(temp.parentObject)==-1)
if(this.XMLloadingWarning)
temp.parentObject.openMe=1;
else
this._openItem(temp.parentObject);
var ze=null;
if(preserve){ze=new Object;ze.ctrlKey=true;}
if(mode)
this.onRowSelect(ze,temp.htmlNode.childNodes[0].childNodes[0].childNodes[3],false);
else
this.onRowSelect(ze,temp.htmlNode.childNodes[0].childNodes[0].childNodes[3],true);
};
dhtmlXTreeObject.prototype.getSelectedItemText=function()
{
var str=new Array();
for(var i=0;i<this._selected.length;i++)str[i]=this._selected[i].span.innerHTML;
return(str.join(this.dlmtr));
};
dhtmlXTreeObject.prototype._compressChildList=function(Count,Nodes)
{
Count--;
for(var i=0;i<Count;i++)
{
if(Nodes[i]==0){Nodes[i]=Nodes[i+1];Nodes[i+1]=0;}
};
};
dhtmlXTreeObject.prototype._deleteNode=function(itemId,htmlObject,skip){
if(!skip){
this._globalIdStorageRecSub(htmlObject);
}
if((!htmlObject)||(!htmlObject.parentObject))return 0;
var tempos=0;var tempos2=0;
if(htmlObject.tr.nextSibling)tempos=htmlObject.tr.nextSibling.nodem;
if(htmlObject.tr.previousSibling)tempos2=htmlObject.tr.previousSibling.nodem;
var sN=htmlObject.parentObject;
var Count=sN.childsCount;
var Nodes=sN.childNodes;
for(var i=0;i<Count;i++)
{
if(Nodes[i].id==itemId){
if(!skip)sN.htmlNode.childNodes[0].removeChild(Nodes[i].tr);
Nodes[i]=0;
break;
}
}
this._compressChildList(Count,Nodes);
if(!skip){
sN.childsCount--;
}
if(tempos){
this._correctPlus(tempos);
this._correctLine(tempos);
}
if(tempos2){
this._correctPlus(tempos2);
this._correctLine(tempos2);
}
if(this.tscheck)this._correctCheckStates(sN);
};
dhtmlXTreeObject.prototype.setCheck=function(itemId,state){
var sNode=this._globalIdStorageFind(itemId,0,1);
if(!sNode)return;
if(state==="unsure")
this._setCheck(sNode,state);
else
{
state=convertStringToBoolean(state);
if((this.tscheck)&&(this.smcheck))this._setSubChecked(state,sNode);
else this._setCheck(sNode,state);
}
if(this.smcheck)
this._correctCheckStates(sNode.parentObject);
};
dhtmlXTreeObject.prototype._setCheck=function(sNode,state){
if(((sNode.parentObject._r_logic)||(this._frbtr))&&(state))
for(var i=0;i<sNode.parentObject.childsCount;i++)
this._setCheck(sNode.parentObject.childNodes[i],0);
var z=sNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];
if(state=="unsure")sNode.checkstate=2;
else if(state)sNode.checkstate=1;else sNode.checkstate=0;
if(sNode.dscheck)sNode.checkstate=sNode.dscheck;
z.src=this.imPath+((sNode.parentObject._r_logic||this._frbtr)?this.radioArray:this.checkArray)[sNode.checkstate];
};
dhtmlXTreeObject.prototype.setSubChecked=function(itemId,state){
var sNode=this._globalIdStorageFind(itemId);
this._setSubChecked(state,sNode);
this._correctCheckStates(sNode.parentObject);
}
dhtmlXTreeObject.prototype._setSubCheckedXML=function(state,sNode){
if(!sNode)return;
if(!_isOpera){
var val= state?"1":"";
var z=this.XMLLoader.doXPath(".//item",sNode);
for(var i=0;i<z.length;i++)
z[i].setAttribute("checked",val);
}
else
for(var i=0;i<sNode.childNodes.length;i++){
var tag=sNode.childNodes[i];
if((tag)&&(tag.tagName=="item")){
if(state)tag.setAttribute("checked",1);
else tag.setAttribute("checked","");
this._setSubCheckedXML(state,tag);
}
}
}
dhtmlXTreeObject.prototype._setSubChecked=function(state,sNode){
state=convertStringToBoolean(state);
if(!sNode)return;
if(((sNode.parentObject._r_logic)||(this._frbtr))&&(state))
for(var i=0;i<sNode.parentObject.childsCount;i++)
this._setSubChecked(0,sNode.parentObject.childNodes[i]);
if(sNode.unParsed)
this._setSubCheckedXML(state,sNode.unParsed)
if(sNode._r_logic||this._frbtr)
this._setSubChecked(state,sNode.childNodes[0]);
else
for(var i=0;i<sNode.childsCount;i++)
{
this._setSubChecked(state,sNode.childNodes[i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -