📄 dhtmlxtree.js
字号:
}
dhtmlObject._redrawFrom(dhtmlObject,tempx.childNodes[i]);
if(this.childCalc!=null){
if((tempx.childNodes[i].unParsed)||((!tempx.childNodes[i].XMLload)&&(this.XMLsource)))
{
if(tempx.childNodes[i]._acc)
tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+tempx.childNodes[i]._acc+this.htmlcB;
else
tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label;
}
if((tempx.childNodes[i].childNodes.length)&&(this.childCalc))
{
if(this.childCalc==1)
{
tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+tempx.childNodes[i].childsCount+this.htmlcB;
}
if(this.childCalc==2)
{
var zCount=tempx.childNodes[i].childsCount-(tempx.childNodes[i].pureChilds||0);
if(zCount)
tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+zCount+this.htmlcB;
if(tempx.pureChilds)tempx.pureChilds++;else tempx.pureChilds=1;
}
if(this.childCalc==3)
{
tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+tempx.childNodes[i]._acc+this.htmlcB;
}
if(this.childCalc==4)
{
var zCount=tempx.childNodes[i]._acc;
if(zCount)
tempx.childNodes[i].span.innerHTML=tempx.childNodes[i].label+this.htmlcA+zCount+this.htmlcB;
}
}
else if(this.childCalc==4){
acc++;
}
acc+=tempx.childNodes[i]._acc;
if(this.childCalc==3){
acc++;
}
}
};
if((!tempx.unParsed)&&((tempx.XMLload)||(!this.XMLsource)))
tempx._acc=acc;
dhtmlObject._correctLine(tempx);
dhtmlObject._correctPlus(tempx);
};
dhtmlXTreeObject.prototype._createSelf=function(){
var div=document.createElement('div');
div.className="containerTableStyle";
div.style.width=this.width;
div.style.height=this.height;
this.parentObject.appendChild(div);
return div;
};
dhtmlXTreeObject.prototype._xcloseAll=function(itemObject)
{
if(this.rootId!=itemObject.id)this._HideShow(itemObject,1);
for(var i=0;i<itemObject.childsCount;i++)
this._xcloseAll(itemObject.childNodes[i]);
};
dhtmlXTreeObject.prototype._xopenAll=function(itemObject)
{
this._HideShow(itemObject,2);
for(var i=0;i<itemObject.childsCount;i++)
this._xopenAll(itemObject.childNodes[i]);
};
dhtmlXTreeObject.prototype._correctPlus=function(itemObject){
var workArray=this.lineArray;
if((this.XMLsource)&&(!itemObject.XMLload))
{
var workArray=this.plusArray;
itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemObject.images[2];
}
else
if((itemObject.childsCount)||(itemObject.unParsed))
{
if((itemObject.htmlNode.childNodes[0].childNodes[1])&&(itemObject.htmlNode.childNodes[0].childNodes[1].style.display!="none"))
{
if(!itemObject.wsign)var workArray=this.minusArray;
itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemObject.images[1];
}
else
{
if(!itemObject.wsign)var workArray=this.plusArray;
itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemObject.images[2];
}
}
else
{
itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemObject.images[0];
}
var tempNum=2;
if(!itemObject.treeNod.treeLinesOn)itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[0].childNodes[0].src=this.imPath+workArray[3];
else{
if(itemObject.parentObject)tempNum=this._getCountStatus(itemObject.id,itemObject.parentObject);
itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[0].childNodes[0].src=this.imPath+workArray[tempNum];
}
};
dhtmlXTreeObject.prototype._correctLine=function(itemObject){
var sNode=itemObject.parentObject;
try{
if(sNode)
if((this._getLineStatus(itemObject.id,sNode)==0)||(!this.treeLinesOn))
{
for(var i=1;i<=itemObject.childsCount;i++)
{
itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundImage="";
itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat="";
}
}
else
for(var i=1;i<=itemObject.childsCount;i++)
{
itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundImage="url("+this.imPath+"line1.gif)";
itemObject.htmlNode.childNodes[0].childNodes[i].childNodes[0].style.backgroundRepeat="repeat-y";
}
}
catch(e){};
};
dhtmlXTreeObject.prototype._getCountStatus=function(itemId,itemObject){
try{
if(itemObject.childsCount<=1){if(itemObject.id==this.rootId)return 4;else return 0;}
if(itemObject.htmlNode.childNodes[0].childNodes[1].nodem.id==itemId)if(!itemObject.id)return 2;else return 1;
if(itemObject.htmlNode.childNodes[0].childNodes[itemObject.childsCount].nodem.id==itemId)return 0;
}
catch(e){};
return 1;
};
dhtmlXTreeObject.prototype._getLineStatus =function(itemId,itemObject){
if(itemObject.htmlNode.childNodes[0].childNodes[itemObject.childsCount].nodem.id==itemId)return 0;
return 1;
}
dhtmlXTreeObject.prototype._HideShow=function(itemObject,mode){
if((this.XMLsource)&&(!itemObject.XMLload)){itemObject.XMLload=1;this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"id="+escape(itemObject.id));return;};
var Nodes=itemObject.htmlNode.childNodes[0].childNodes;var Count=Nodes.length;
if(Count>1){
if(((Nodes[1].style.display!="none")||(mode==1))&&(mode!=2)){
this.allTree.childNodes[0].border = "1";
this.allTree.childNodes[0].border = "0";
nodestyle="none";
}
else nodestyle="";
for(var i=1;i<Count;i++)
Nodes[i].style.display=nodestyle;
}
this._correctPlus(itemObject);
}
dhtmlXTreeObject.prototype._getOpenState=function(itemObject){
if(!itemObject)return;
var z=itemObject.htmlNode.childNodes[0].childNodes;
if(z.length<=1)return 0;
if(z[1].style.display!="none")return 1;
else return -1;
}
dhtmlXTreeObject.prototype.onRowClick2=function(){
if(this.parentObject.treeNod.dblclickFuncHandler)if(!this.parentObject.treeNod.dblclickFuncHandler(this.parentObject.id))return 0;
if((this.parentObject.closeble)&&(this.parentObject.closeble!="0"))
this.parentObject.treeNod._HideShow(this.parentObject);
else
this.parentObject.treeNod._HideShow(this.parentObject,2);
};
dhtmlXTreeObject.prototype.onRowClick=function(){
if(this.parentObject.treeNod.openFuncHandler)if(!this.parentObject.treeNod.openFuncHandler(this.parentObject.id,this.parentObject.treeNod._getOpenState(this.parentObject)))return 0;
if((this.parentObject.closeble)&&(this.parentObject.closeble!="0"))
this.parentObject.treeNod._HideShow(this.parentObject);
else
this.parentObject.treeNod._HideShow(this.parentObject,2);
};
dhtmlXTreeObject.prototype.onRowClickDown=function(){
var that=this.parentObject.treeNod;
that._selectItem(this.parentObject);
};
dhtmlXTreeObject.prototype._selectItem=function(node){
if(this.lastSelected){
this._unselectItem(this.lastSelected.parentObject);
}
var z=node.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0];
z.className="selectedTreeRow";
this.lastSelected=z.parentNode;
}
dhtmlXTreeObject.prototype._unselectItem=function(node){
node.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].className="standartTreeRow";
}
dhtmlXTreeObject.prototype.onRowSelect=function(e,htmlObject,mode){
if(!htmlObject)htmlObject=this.parentObject.span.parentNode;
htmlObject.parentObject.span.className="selectedTreeRow";
if(htmlObject.parentObject.scolor)htmlObject.parentObject.span.style.color=htmlObject.parentObject.scolor;
if((htmlObject.parentObject.treeNod.lastSelected)&&(htmlObject.parentObject.treeNod.lastSelected!=htmlObject))
{
var lastId=htmlObject.parentObject.treeNod.lastSelected.parentObject.id;
htmlObject.parentObject.treeNod.lastSelected.parentObject.span.className="standartTreeRow";
if(htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor)htmlObject.parentObject.treeNod.lastSelected.parentObject.span.style.color=htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor;
}
else var lastId="";
htmlObject.parentObject.treeNod.lastSelected=htmlObject;
if(!mode){
if(window.event)e=event;
if((e)&&(e.button==2)&&(htmlObject.parentObject.treeNod.arFunc))
{htmlObject.parentObject.treeNod.arFunc(htmlObject.parentObject.id);}
if(htmlObject.parentObject.actionHandler)htmlObject.parentObject.actionHandler(htmlObject.parentObject.id,lastId);
}
};
dhtmlXTreeObject.prototype._correctCheckStates=function(dhtmlObject){
if(!this.tscheck)return;
if(dhtmlObject.id==this.rootId)return;
var act=dhtmlObject.htmlNode.childNodes[0].childNodes;
var flag1=0;var flag2=0;
if(act.length<2)return;
for(var i=1;i<act.length;i++)
if(act[i].nodem.checkstate==0)flag1=1;
else if(act[i].nodem.checkstate==1)flag2=1;
else{flag1=1;flag2=1;break;}
if((flag1)&&(flag2))this._setCheck(dhtmlObject,"notsure");
else if(flag1)this._setCheck(dhtmlObject,false);
else this._setCheck(dhtmlObject,true);
this._correctCheckStates(dhtmlObject.parentObject);
}
dhtmlXTreeObject.prototype.onCheckBoxClick=function(e){
if(this.treeNod.tscheck)
if(this.parentObject.checkstate==1)this.treeNod._setSubChecked(false,this.parentObject);
else this.treeNod._setSubChecked(true,this.parentObject);
else
if(this.parentObject.checkstate==1)this.treeNod._setCheck(this.parentObject,false);
else this.treeNod._setCheck(this.parentObject,true);
this.treeNod._correctCheckStates(this.parentObject.parentObject);
if(this.treeNod.checkFuncHandler)return(this.treeNod.checkFuncHandler(this.parentObject.id,this.parentObject.checkstate));
else return true;
};
dhtmlXTreeObject.prototype._createItem=function(acheck,itemObject,mode){
var table=document.createElement('table');
table.cellSpacing=0;table.cellPadding=0;
table.border=0;
if(this.hfMode)table.style.tableLayout="fixed";
table.style.margin=0;table.style.padding=0;
var tbody=document.createElement('tbody');
var tr=document.createElement('tr');
var td1=document.createElement('td');
td1.className="standartTreeImage";
var img0=document.createElement((itemObject.id==this.rootId)?"div":"img");
img0.border="0";
if(itemObject.id!=this.rootId)img0.align="absmiddle";
td1.appendChild(img0);img0.style.padding=0;img0.style.margin=0;
var td11=document.createElement('td');
var inp=document.createElement((itemObject.id==this.rootId)?"div":"img");
inp.checked=0;inp.src=this.imPath+this.checkArray[0];inp.style.width="16px";inp.style.height="16px";
if(!acheck)(((_isOpera)||(_isKHTML))?td11:inp).style.display="none";
td11.appendChild(inp);
if(itemObject.id!=this.rootId)inp.align="absmiddle";
inp.onclick=this.onCheckBoxClick;
inp.treeNod=this;
inp.parentObject=itemObject;
td11.width="20px";
var td12=document.createElement('td');
td12.className="standartTreeImage";
var img=document.createElement((itemObject.id==this.rootId)?"div":"img");img.onmousedown=this._preventNsDrag;img.ondragstart=this._preventNsDrag;
img.border="0";
if(this._aimgs){
img.parentObject=itemObject;
if(itemObject.id!=this.rootId)img.align="absmiddle";
img.onclick=this.onRowSelect;}
if(!mode)img.src=this.imPath+this.imageArray[0];
td12.appendChild(img);img.style.padding=0;img.style.margin=0;
if(this.timgen)
{img.style.width=this.def_img_x;img.style.height=this.def_img_y;}
else
{img.style.width="0px";img.style.height="0px";}
var td2=document.createElement('td');
td2.className="standartTreeRow";
itemObject.span=document.createElement('span');
itemObject.span.className="standartTreeRow";
if(this.mlitems)itemObject.span.style.width=this.mlitems;
else td2.noWrap=true;
if(!_isKHTML)td2.style.width="100%";
itemObject.span.innerHTML=itemObject.label;
td2.appendChild(itemObject.span);
td2.parentObject=itemObject;td1.parentObject=itemObject;
td2.onclick=this.onRowSelect;td1.onclick=this.onRowClick;td2.ondblclick=this.onRowClick2;
if(this.ettip)td2.title=itemObject.label;
if(this.dragAndDropOff){
if(this._aimgs){this.dragger.addDraggableItem(td12,this);td12.parentObject=itemObject;}
this.dragger.addDraggableItem(td2,this);
}
itemObject.span.style.paddingLeft="5px";itemObject.span.style.paddingRight="5px";td2.style.verticalAlign="";
td2.style.fontSize="10pt";td2.style.cursor=this.style_pointer;
tr.appendChild(td1);tr.appendChild(td11);tr.appendChild(td12);
tr.appendChild(td2);
tbody.appendChild(tr);
table.appendChild(tbody);
if(this.arFunc){
tr.oncontextmenu=Function("this.childNodes[0].parentObject.treeNod.arFunc(this.childNodes[0].parentObject.id);return false;");
}
return table;
};
dhtmlXTreeObject.prototype.setImagePath=function(newPath){this.imPath=newPath;};
dhtmlXTreeObject.prototype.setOnRightClickHandler=function(func){if(typeof(func)=="function")this.arFunc=func;else this.arFunc=eval(func);};
dhtmlXTreeObject.prototype.setOnClickHandler=function(func){if(typeof(func)=="function")this.aFunc=func;else this.aFunc=eval(func);};
dhtmlXTreeObject.prototype.setXMLAutoLoading=function(filePath){this.XMLsource=filePath;};
dhtmlXTreeObject.prototype.setOnCheckHandler=function(func){if(typeof(func)=="function")this.checkFuncHandler=func;else this.checkFuncHandler=eval(func);};
dhtmlXTreeObject.prototype.setOnOpenHandler=function(func){if(typeof(func)=="function")this.openFuncHandler=func;else this.openFuncHandler=eval(func);};
dhtmlXTreeObject.prototype.setOnDblClickHandler=function(func){if(typeof(func)=="function")this.dblclickFuncHandler=func;else this.dblclickFuncHandler=eval(func);};
dhtmlXTreeObject.prototype.openAllItems=function(itemId)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
this._xopenAll(temp);
};
dhtmlXTreeObject.prototype.getOpenState=function(itemId){
var temp=this._globalIdStorageFind(itemId);
if(!temp)return "";
return this._getOpenState(temp);
};
dhtmlXTreeObject.prototype.closeAllItems=function(itemId)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
this._xcloseAll(temp);
};
dhtmlXTreeObject.prototype.setUserData=function(itemId,name,value){
var sNode=this._globalIdStorageFind(itemId);
if(!sNode)return;
if(name=="hint")sNode.htmlNode.childNodes[0].childNodes[0].title=value;
sNode.userData["t_"+name]=value;
if(!sNode._userdatalist)sNode._userdatalist=name;
else sNode._userdatalist+=","+name;
};
dhtmlXTreeObject.prototype.getUserData=function(itemId,name){
var sNode=this._globalIdStorageFind(itemId);
if(!sNode)return;
return sNode.userData["t_"+name];
};
dhtmlXTreeObject.prototype.getSelectedItemId=function()
{
if(this.lastSelected)
if(this._globalIdStorageFind(this.lastSelected.parentObject.id))
return this.lastSelected.parentObject.id;
return("");
};
dhtmlXTreeObject.prototype.getItemColor=function(itemId)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
var res= new Object();
if(temp.acolor)res.acolor=temp.acolor;
if(temp.acolor)res.scolor=temp.scolor;
return res;
};
dhtmlXTreeObject.prototype.setItemColor=function(itemId,defaultColor,selectedColor)
{
if((itemId)&&(itemId.span))
var temp=itemId;
else
var temp=this._globalIdStorageFind(itemId);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -