📄 dhtmlxtree.js
字号:
if(!temp)return 0;
else{
if((this.lastSelected)&&(temp.tr==this.lastSelected.parentObject.tr))
{if(selectedColor)temp.span.style.color=selectedColor;}
else
{if(defaultColor)temp.span.style.color=defaultColor;}
if(selectedColor)temp.scolor=selectedColor;
if(defaultColor)temp.acolor=defaultColor;
}
};
dhtmlXTreeObject.prototype.getItemText=function(itemId)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
return(temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML);
};
//获得父节点ID
dhtmlXTreeObject.prototype.getParentId=function(itemId)
{
var temp=this._globalIdStorageFind(itemId);
if((!temp)||(!temp.parentObject))return "";
return temp.parentObject.id;
};
dhtmlXTreeObject.prototype.changeItemId=function(itemId,newItemId)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
temp.id=newItemId;
temp.span.contextMenuId=newItemId;
for(var i=0;i<this._globalIdStorageSize;i++)
if(this._globalIdStorage[i]==itemId)
{
this._globalIdStorage[i]=newItemId;
}
};
dhtmlXTreeObject.prototype.doCut=function(){
if(this.nodeCut)this.clearCut();
this.nodeCut=this.lastSelected;
if(this.nodeCut)
{
var tempa=this.nodeCut.parentObject;
this.cutImg[0]=tempa.images[0];
this.cutImg[1]=tempa.images[1];
this.cutImg[2]=tempa.images[2];
tempa.images[0]=tempa.images[1]=tempa.images[2]=this.cutImage;
this._correctPlus(tempa);
}
};
dhtmlXTreeObject.prototype.doPaste=function(itemId){
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
if(this.nodeCut){
if((!this._checkParenNodes(this.nodeCut.parentObject.id,temp))&&(id!=this.nodeCut.parentObject.parentObject.id))
this._moveNode(temp,this.nodeCut.parentObject);
this.clearCut();
}
};
dhtmlXTreeObject.prototype.clearCut=function(){
if(this.nodeCut)
{
var tempa=this.nodeCut.parentObject;
tempa.images[0]=this.cutImg[0];
tempa.images[1]=this.cutImg[1];
tempa.images[2]=this.cutImg[2];
if(tempa.parentObject)this._correctPlus(tempa);
if(tempa.parentObject)this._correctLine(tempa);
this.nodeCut=0;
}
};
dhtmlXTreeObject.prototype._moveNode=function(itemObject,targetObject){
var mode=this.dadmodec;
if(mode==1)
{
var z=targetObject;
if(this.dadmodefix<0)
{
while(true){
z=this._getPrevNode(z);
if((z==-1)){z=this.htmlNode;break;}
if((z.tr.style.display=="")||(!z.parentObject))break;
}
var nodeA=z;
var nodeB=targetObject;
}
else
{
while(true){
z=this._getNextNode(z);
if((z==-1)){z=this.htmlNode;break;}
if((z.tr.style.display=="")||(!z.parentObject))break;
}
var nodeB=z;
var nodeA=targetObject;
}
if(this._getNodeLevel(nodeA,0)>this._getNodeLevel(nodeB,0))
{
return this._moveNodeTo(itemObject,nodeA.parentObject);
}
else
{
return this._moveNodeTo(itemObject,nodeB.parentObject,nodeB);
}
}
else return this._moveNodeTo(itemObject,targetObject);
}
dhtmlXTreeObject.prototype._fixNodesCollection=function(target,zParent){
var flag=0;var icount=0;
var Nodes=target.childNodes;
var Count=target.childsCount-1;
if(zParent==Nodes[Count])return;
for(var i=0;i<Count;i++)
if(Nodes[i]==Nodes[Count]){Nodes[i]=Nodes[i+1];Nodes[i+1]=Nodes[Count];}
for(var i=0;i<Count+1;i++)
{
if(flag){
var temp=Nodes[i];
Nodes[i]=flag;
flag=temp;
}
else
if(Nodes[i]==zParent){flag=Nodes[i];Nodes[i]=Nodes[Count];}
}
};
dhtmlXTreeObject.prototype._moveNodeTo=function(itemObject,targetObject,beforeNode){
if(targetObject.mytype)
var framesMove=(itemObject.treeNod.lWin!=targetObject.lWin);
else
var framesMove=(itemObject.treeNod.lWin!=targetObject.treeNod.lWin);
if(this.dragFunc)if(!this.dragFunc(itemObject.id,targetObject.id,(beforeNode?beforeNode.id:null),itemObject.treeNod,targetObject.treeNod))return false;
if((targetObject.XMLload==0)&&(this.XMLsource))
{
targetObject.XMLload=1;this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"id="+escape(targetObject.id));
}
this.openItem(targetObject.id);
var oldTree=itemObject.treeNod;
var c=itemObject.parentObject.childsCount;
var z=itemObject.parentObject;
if((framesMove)||(oldTree.dpcpy))
itemObject=this._recreateBranch(itemObject,targetObject,beforeNode);
else
{
var Count=targetObject.childsCount;var Nodes=targetObject.childNodes;
Nodes[Count]=itemObject;
itemObject.treeNod=targetObject.treeNod;
targetObject.childsCount++;
var tr=this._drawNewTr(Nodes[Count].htmlNode);
if(!beforeNode)
{
targetObject.htmlNode.childNodes[0].appendChild(tr);
if(this.dadmode==1)this._fixNodesCollection(targetObject,beforeNode);
}
else
{
targetObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr);
this._fixNodesCollection(targetObject,beforeNode);
Nodes=targetObject.childNodes;
}
}
if(!oldTree.dpcpy){
itemObject.parentObject.htmlNode.childNodes[0].removeChild(itemObject.tr);
if((!beforeNode)||(targetObject!=itemObject.parentObject)){
for(var i=0;i<z.childsCount;i++){
if(z.childNodes[i].id==itemObject.id){
z.childNodes[i]=0;
break;}}}
else z.childNodes[z.childsCount-1]=0;
oldTree._compressChildList(z.childsCount,z.childNodes);
z.childsCount--;
}
if((!framesMove)&&(!oldTree.dpcpy)){
itemObject.tr=tr;
tr.nodem=itemObject;
itemObject.parentObject=targetObject;
if(oldTree!=targetObject.treeNod){if(itemObject.treeNod._registerBranch(itemObject,oldTree))return;this._clearStyles(itemObject);this._redrawFrom(this,itemObject.parentObject);};
this._correctPlus(targetObject);
this._correctLine(targetObject);
this._correctLine(itemObject);
this._correctPlus(itemObject);
if(beforeNode)
{
this._correctPlus(beforeNode);
}
else
if(targetObject.childsCount>=2)
{
this._correctPlus(Nodes[targetObject.childsCount-2]);
this._correctLine(Nodes[targetObject.childsCount-2]);
}
this._correctPlus(Nodes[targetObject.childsCount-1]);
if(this.tscheck)this._correctCheckStates(targetObject);
if(oldTree.tscheck)oldTree._correctCheckStates(z);
}
if(c>1){oldTree._correctPlus(z.childNodes[c-2]);
oldTree._correctLine(z.childNodes[c-2]);
}
oldTree._correctPlus(z);
if(this.dropFunc)this.dropFunc(itemObject.id,targetObject.id,(beforeNode?beforeNode.id:null),itemObject.treeNod,targetObject.treeNod);
return itemObject.id;
};
dhtmlXTreeObject.prototype._checkParenNodes=function(itemId,htmlObject,shtmlObject){
if(shtmlObject){if(shtmlObject.parentObject.id==htmlObject.id)return 1;}
if(htmlObject.id==itemId)return 1;
if(htmlObject.parentObject)return this._checkParenNodes(itemId,htmlObject.parentObject);else return 0;
};
dhtmlXTreeObject.prototype._clearStyles=function(itemObject){
var td1=itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[1];
var td3=td1.nextSibling.nextSibling;
itemObject.span.innerHTML=itemObject.label;
if(this.checkBoxOff){td1.childNodes[0].style.display="";td1.childNodes[0].onclick=this.onCheckBoxClick;}
else td1.childNodes[0].style.display="none";
td1.childNodes[0].treeNod=this;
this.dragger.removeDraggableItem(td3);
if(this.dragAndDropOff)this.dragger.addDraggableItem(td3,this);
td3.childNodes[0].className="standartTreeRow";
td3.onclick=this.onRowSelect;td3.ondblclick=this.onRowClick2;
td1.previousSibling.onclick=this.onRowClick;
this._correctLine(itemObject);
this._correctPlus(itemObject);
for(var i=0;i<itemObject.childsCount;i++)this._clearStyles(itemObject.childNodes[i]);
};
dhtmlXTreeObject.prototype._registerBranch=function(itemObject,oldTree){
itemObject.id=this._globalIdStorageAdd(itemObject.id,itemObject);
itemObject.treeNod=this;
if(oldTree)oldTree._globalIdStorageSub(itemObject.id);
for(var i=0;i<itemObject.childsCount;i++)
this._registerBranch(itemObject.childNodes[i],oldTree);
return 0;
};
dhtmlXTreeObject.prototype.enableThreeStateCheckboxes=function(mode){this.tscheck=convertStringToBoolean(mode);};
dhtmlXTreeObject.prototype.enableTreeImages=function(mode){this.timgen=convertStringToBoolean(mode);};
dhtmlXTreeObject.prototype.enableFixedMode=function(mode){this.hfMode=convertStringToBoolean(mode);};
dhtmlXTreeObject.prototype.enableCheckBoxes=function(mode){this.checkBoxOff=convertStringToBoolean(mode);};
dhtmlXTreeObject.prototype.setStdImages=function(image1,image2,image3){
this.imageArray[0]=image1;this.imageArray[1]=image2;this.imageArray[2]=image3;};
dhtmlXTreeObject.prototype.enableTreeLines=function(mode){
this.treeLinesOn=convertStringToBoolean(mode);
}
dhtmlXTreeObject.prototype.setImageArrays=function(arrayName,image1,image2,image3,image4,image5){
switch(arrayName){
case "plus": this.plusArray[0]=image1;this.plusArray[1]=image2;this.plusArray[2]=image3;this.plusArray[3]=image4;this.plusArray[4]=image5;break;
case "minus": this.minusArray[0]=image1;this.minusArray[1]=image2;this.minusArray[2]=image3;this.minusArray[3]=image4;this.minusArray[4]=image5;break;
}
};
dhtmlXTreeObject.prototype.openItem=function(itemId){
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
else return this._openItem(temp);
};
dhtmlXTreeObject.prototype._openItem=function(item){
this._HideShow(item,2);
if((item.parentObject)&&(this._getOpenState(item.parentObject)<0))
this._openItem(item.parentObject);
};
dhtmlXTreeObject.prototype.closeItem=function(itemId){
if(this.rootId==itemId)return 0;
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
if(temp.closeble)
this._HideShow(temp,1);
};
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.setItemText=function(itemId,newLabel,newTooltip)
{
var temp=this._globalIdStorageFind(itemId);
if(!temp)return 0;
temp.label=newLabel;
temp.span.innerHTML=newLabel;
temp.span.parentNode.title=newTooltip||"";
};
dhtmlXTreeObject.prototype.refreshItem=function(itemId){
if(!itemId)itemId=this.rootId;
var temp=this._globalIdStorageFind(itemId);
this.deleteChildItems(itemId);
this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"id="+escape(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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -