<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head> <title>DHTML Tree samples. dhtmlXTree - Drag and Drop</title> </head> <style> body {font-size:12px} .{font-family:arial;font-size:14px} h1 {cursor:hand;font-size:16px;margin-left:10px;line-height:10px} xmp {color:green;font-size:12px;margin:0px;font-family:courier;background-color:#e6e6fa;padding:2px} </style> <body> <h1>Drag and Drop</h1> <!-- dhtmlXTree.css --> <style rel="STYLESHEET" type="text/css"> .defaultTreeTable{ margin : 0; padding : 0; border : 0; } .containerTableStyle { overflow : auto;} .standartTreeRow{ font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } .selectedTreeRow{ background-color : navy; color:white; font-family : Verdana, Geneva, Arial, Helvetica, sans-serif; font-size : 12px; -moz-user-select: none; } .standartTreeImage{ width:18px; height:18px; overflow:hidden; border:0; padding:0; margin:0; } .hiddenRow { width:1px; overflow:hidden; } .dragSpanDiv{ font-size : 12px; border: thin solid 1 1 1 1; } </style> <!-- dhtmlXCommon.js --> <script> function dtmlXMLLoaderObject(funcObject,dhtmlObject){ this.xmlDoc=""; this.onloadAction=funcObject||null; this.mainObject=dhtmlObject||null; return this; }; dtmlXMLLoaderObject.prototype.waitLoadFunction=function(dhtmlObject){ this.check=function(){ if(!dhtmlObject.xmlDoc.readyState)dhtmlObject.onloadAction(dhtmlObject.mainObject); else{ if(dhtmlObject.xmlDoc.readyState != 4)return false; else dhtmlObject.onloadAction(dhtmlObject.mainObject);} }; return this.check; }; dtmlXMLLoaderObject.prototype.getXMLTopNode=function(tagName){ if(this.xmlDoc.responseXML){var temp=this.xmlDoc.responseXML.getElementsByTagName(tagName);var z=temp[0];} else var z=this.xmlDoc.documentElement; if(z)return z; alert("Incorrect XML"); return document.createElement("DIV"); }; dtmlXMLLoaderObject.prototype.loadXMLString=function(xmlString){ try { var parser = new DOMParser(); this.xmlDoc = parser.parseFromString(xmlString,"text/xml"); } catch(e){ this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); this.xmlDoc.loadXML(xmlString); } this.onloadAction(this.mainObject); } dtmlXMLLoaderObject.prototype.loadXML=function(filePath){ try { this.xmlDoc = new XMLHttpRequest(); this.xmlDoc.open("GET",filePath,true); this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); this.xmlDoc.send(null); } catch(e){
if(document.implementation && document.implementation.createDocument) { this.xmlDoc = document.implementation.createDocument("","",null); this.xmlDoc.onload = new this.waitLoadFunction(this); } else { this.xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); this.xmlDoc.async="true"; this.xmlDoc.onreadystatechange=new this.waitLoadFunction(this); } this.xmlDoc.load(filePath); } }; function callerFunction(funcObject,dhtmlObject){ this.handler=function(e){ if(!e)e=event; funcObject(e,dhtmlObject); return true; }; return this.handler; };
function getAbsoluteLeft(htmlObject){ var xPos = htmlObject.offsetLeft; var temp = htmlObject.offsetParent; while(temp != null){ xPos+= temp.offsetLeft; temp = temp.offsetParent; } return xPos; } function getAbsoluteTop(htmlObject){ var yPos = htmlObject.offsetTop; var temp = htmlObject.offsetParent; while(temp != null){ yPos+= temp.offsetTop; temp = temp.offsetParent; } return yPos; } function convertStringToBoolean(inputString){if(typeof(inputString)=="string")inputString=inputString.toLowerCase(); switch(inputString){ case "1": case "true": case "yes": case "y": case 1: case true: return true; break; default: return false; } }
function getUrlSymbol(str){ if(str.indexOf("?")!=-1) return "&" else return "?" } function dhtmlDragAndDropObject(){ this.lastLanding=0; this.dragNode=0; this.dragStartNode=0; this.dragStartObject=0; this.tempDOMU=null; this.tempDOMM=null; this.waitDrag=0; if(window.dhtmlDragAndDrop)return window.dhtmlDragAndDrop; window.dhtmlDragAndDrop=this; return this; }; dhtmlDragAndDropObject.prototype.removeDraggableItem=function(htmlNode){ htmlNode.onmousedown=null; htmlNode.dragStarter=null; htmlNode.dragLanding=null; } dhtmlDragAndDropObject.prototype.addDraggableItem=function(htmlNode,dhtmlObject){ htmlNode.onmousedown=this.preCreateDragCopy; htmlNode.dragStarter=dhtmlObject; this.addDragLanding(htmlNode,dhtmlObject); } dhtmlDragAndDropObject.prototype.addDragLanding=function(htmlNode,dhtmlObject){ htmlNode.dragLanding=dhtmlObject; } dhtmlDragAndDropObject.prototype.preCreateDragCopy=function(e) { if(window.dhtmlDragAndDrop.waitDrag){ window.dhtmlDragAndDrop.waitDrag=0; document.body.onmouseup=window.dhtmlDragAndDrop.tempDOMU; document.body.onmousemove=window.dhtmlDragAndDrop.tempDOMM; return; } window.dhtmlDragAndDrop.waitDrag=1; window.dhtmlDragAndDrop.tempDOMU=document.body.onmouseup; window.dhtmlDragAndDrop.tempDOMM=document.body.onmousemove; window.dhtmlDragAndDrop.dragStartNode=this; window.dhtmlDragAndDrop.dragStartObject=this.dragStarter; document.body.onmouseup=window.dhtmlDragAndDrop.preCreateDragCopy; document.body.onmousemove=window.dhtmlDragAndDrop.callDrag; }; dhtmlDragAndDropObject.prototype.callDrag=function(e){ if(!e)e=window.event; dragger=window.dhtmlDragAndDrop; if(!dragger.dragNode){ dragger.dragNode=dragger.dragStartObject._createDragNode(dragger.dragStartNode); document.body.appendChild(dragger.dragNode); document.body.onmouseup=dragger.stopDrag; dragger.waitDrag=0; }
dragger.dragNode.style.left=e.clientX+15+document.body.scrollLeft;dragger.dragNode.style.top=e.clientY+3+document.body.scrollTop;
if(!e.srcElement)var z=e.target;else z=e.srcElement; dragger.checkLanding(z); } dhtmlDragAndDropObject.prototype.checkLanding=function(htmlObject){ if(htmlObject.dragLanding){if(this.lastLanding)this.lastLanding.dragLanding._dragOut(this.lastLanding); this.lastLanding=htmlObject;this.lastLanding=this.lastLanding.dragLanding._dragIn(this.lastLanding,this.dragStartNode);} else{ if(htmlObject.tagName!="BODY")this.checkLanding(htmlObject.parentNode); else{if(this.lastLanding)this.lastLanding.dragLanding._dragOut(this.lastLanding);this.lastLanding=0;} } } dhtmlDragAndDropObject.prototype.stopDrag=function(e){ dragger=window.dhtmlDragAndDrop; if(dragger.lastLanding)dragger.lastLanding.dragLanding._drag(dragger.dragStartNode,dragger.dragStartObject,dragger.lastLanding); dragger.lastLanding=0; dragger.dragNode.parentNode.removeChild(dragger.dragNode); dragger.dragNode=0; dragger.dragStartNode=0; dragger.dragStartObject=0; document.body.onmouseup=dragger.tempDOMU; document.body.onmousemove=dragger.tempDOMM; dragger.tempDOMU=null; dragger.tempDOMM=null; dragger.waitDrag=0; } </script> <!-- dhtmlXTree.js --> <script>
function dhtmlXTreeObject(htmlObject,width,height,rootId){ if(typeof(htmlObject)!="object") this.parentObject=document.getElementById(htmlObject); else this.parentObject=htmlObject; this.mytype="tree"; this.width=width; this.height=height; this.rootId=rootId; this.style_pointer="pointer"; if(navigator.appName == 'Microsoft Internet Explorer')this.style_pointer="hand"; this.hfMode=0; this.nodeCut=0; this.XMLsource=0; this.XMLloadingWarning=0; this._globalIdStorage=new Array(); this.globalNodeStorage=new Array(); this._globalIdStorageSize=0; this.treeLinesOn=true; this.checkFuncHandler=0; this.openFuncHandler=0; this.dblclickFuncHandler=0; this.tscheck=false; this.timgen=true; this.imPath="treeGfx/"; this.checkArray=new Array("iconUnCheckAll.gif","iconCheckAll.gif","iconCheckGray.gif"); this.lineArray=new Array("line2.gif","line3.gif","line4.gif","blank.gif","blank.gif"); this.minusArray=new Array("minus2.gif","minus3.gif","minus4.gif","minus.gif","minus5.gif"); this.plusArray=new Array("plus2.gif","plus3.gif","plus4.gif","plus.gif","plus5.gif"); this.imageArray=new Array("leaf.gif","folderOpen.gif","folderClosed.gif"); this.cutImg= new Array(0,0,0); this.cutImage="but_cut.gif"; this.dragger= new dhtmlDragAndDropObject(); this.htmlNode=new dhtmlXTreeItemObject(this.rootId,"",0,this); this.htmlNode.htmlNode.childNodes[0].childNodes[0].style.display="none"; this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[0].className="hiddenRow"; this.allTree=this._createSelf(); this.allTree.appendChild(this.htmlNode.htmlNode); this.allTree.onselectstart=new Function("return false;"); this.XMLLoader=new dtmlXMLLoaderObject(this._parseXMLTree,this); this.dragger.addDragLanding(this.allTree,this); return this; };
function dhtmlXTreeItemObject(itemId,itemText,parentObject,treeObject,actionHandler,mode){ this.htmlNode=""; this.acolor=""; this.scolor=""; this.tr=0; this.childsCount=0; this.tempDOMM=0; this.tempDOMU=0; this.dragSpan=0; this.dragMove=0; this.span=0; this.closeble=1; this.childNodes=new Array();
this.checkstate=0; this.treeNod=treeObject; this.label=itemText; this.parentObject=parentObject; this.actionHandler=actionHandler; this.images=new Array(treeObject.imageArray[0],treeObject.imageArray[1],treeObject.imageArray[2]);
this.id=treeObject._globalIdStorageAdd(itemId,this); if(this.treeNod.checkBoxOff)this.htmlNode=this.treeNod._createItem(1,this,mode); else this.htmlNode=this.treeNod._createItem(0,this,mode); this.htmlNode.objBelong=this; return this; }; dhtmlXTreeObject.prototype._globalIdStorageAdd=function(itemId,itemObject){ if(this._globalIdStorageFind(itemId)){d=new Date();itemId=d.valueOf()+"_"+itemId;return this._globalIdStorageAdd(itemId,itemObject);} this._globalIdStorage[this._globalIdStorageSize]=itemId; this.globalNodeStorage[this._globalIdStorageSize]=itemObject; this._globalIdStorageSize++; return itemId; }; dhtmlXTreeObject.prototype._globalIdStorageSub=function(itemId){ for(var i=0;i<this._globalIdStorageSize;i++) if(this._globalIdStorage[i]==itemId) { this._globalIdStorage[i]=this._globalIdStorage[this._globalIdStorageSize-1]; this.globalNodeStorage[i]=this.globalNodeStorage[this._globalIdStorageSize-1]; this._globalIdStorageSize--; this._globalIdStorage[this._globalIdStorageSize]=0; this.globalNodeStorage[this._globalIdStorageSize]=0; } }; dhtmlXTreeObject.prototype._globalIdStorageFind=function(itemId){ for(var i=0;i<this._globalIdStorageSize;i++) if(this._globalIdStorage[i]==itemId) return this.globalNodeStorage[i]; return 0; };
dhtmlXTreeObject.prototype._drawNewTr=function(htmlObject) { var tr =document.createElement('tr'); var td1=document.createElement('td'); var td2=document.createElement('td'); td1.appendChild(document.createTextNode(" ")); td2.colSpan=3;td2.appendChild(htmlObject);tr.appendChild(td1);tr.appendChild(td2); return tr; }; dhtmlXTreeObject.prototype.loadXMLString=function(xmlString){this.XMLLoader.loadXMLString(xmlString);}; dhtmlXTreeObject.prototype.loadXML=function(file){this.XMLLoader.loadXML(file);}; dhtmlXTreeObject.prototype._attachChildNode=function(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs,beforeNode){ if(beforeNode)parentObject=beforeNode.parentObject; if(((parentObject.XMLload==0)&&(this.XMLsource))&&(!this.XMLloadingWarning)) { parentObject.XMLload=1;this.loadXML(this.XMLsource+getUrlSymbol(this.XMLsource)+"itemId="+escape(parentObject.itemId)); } var Count=parentObject.childsCount; var Nodes=parentObject.childNodes; if((!itemActionHandler)&&(this.aFunc))itemActionHandler=this.aFunc; Nodes[Count]=new dhtmlXTreeItemObject(itemId,itemText,parentObject,this,itemActionHandler,1); if(image1)Nodes[Count].images[0]=image1; if(image2)Nodes[Count].images[1]=image2; if(image3)Nodes[Count].images[2]=image3; parentObject.childsCount++; var tr=this._drawNewTr(Nodes[Count].htmlNode); if(this.XMLloadingWarning) Nodes[Count].htmlNode.parentNode.parentNode.style.display="none"; if(optionStr){ var tempStr=optionStr.split(","); for(var i=0;i<tempStr.length;i++) { switch(tempStr[i]) { case "TOP": if(parentObject.childsCount>1)beforeNode=parentObject.htmlNode.childNodes[0].childNodes[1].nodem.previousSibling;break; } }; }; if((beforeNode)&&(beforeNode.tr.nextSibling)) parentObject.htmlNode.childNodes[0].insertBefore(tr,beforeNode.tr.nextSibling); else parentObject.htmlNode.childNodes[0].appendChild(tr);
if(this.XMLsource)if((childs)&&(childs!=0))Nodes[Count].XMLload=0;else Nodes[Count].XMLload=1;
Nodes[Count].tr=tr; tr.nodem=Nodes[Count];
if(parentObject.itemId==0) tr.childNodes[0].className="hitemIddenRow"; if(optionStr){ var tempStr=optionStr.split(","); for(var i=0;i<tempStr.length;i++) { switch(tempStr[i]) { case "SELECT": this.selectItem(itemId,false);break; case "CALL": this.selectItem(itemId,true);break; case "CHILD": Nodes[Count].XMLload=0;break; case "CHECKED": if(this.XMLloadingWarning) this.setCheckList+=itemId; else this.setCheck(itemId,1); break; case "OPEN": Nodes[Count].openMe=1;break; } }; };
if(!this.XMLloadingWarning) { if(this._getOpenState(parentObject)<0) this.openItem(parentObject.id); if(beforeNode) { this._correctPlus(beforeNode); this._correctLine(beforeNode); } this._correctPlus(parentObject); this._correctLine(parentObject); this._correctPlus(Nodes[Count]); if(parentObject.childsCount>=2) { this._correctPlus(Nodes[parentObject.childsCount-2]); this._correctLine(Nodes[parentObject.childsCount-2]); } if(parentObject.childsCount!=2)this._correctPlus(Nodes[0]); if(this.tscheck)this._correctCheckStates(parentObject); } return Nodes[Count]; };
dhtmlXTreeObject.prototype.insertNewItem=function(parentId,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs){ var parentObject=this._globalIdStorageFind(parentId); if(!parentObject)return(-1); return this._attachChildNode(parentObject,itemId,itemText,itemActionHandler,image1,image2,image3,optionStr,childs); }; dhtmlXTreeObject.prototype._parseXMLTree=function(dhtmlObject,node,parentId,level){ dhtmlObject.XMLloadingWarning=1; var nodeAskingCall=""; if(!node){ node=dhtmlObject.XMLLoader.getXMLTopNode("tree"); parentId=node.getAttribute("id"); dhtmlObject.setCheckList=""; }
for(var i=0;i<node.childNodes.length;i++) { if((node.childNodes[i].nodeType==1)&&(node.childNodes[i].tagName == "item")) { var name=node.childNodes[i].getAttribute("text"); var cId=node.childNodes[i].getAttribute("id"); var im0=node.childNodes[i].getAttribute("im0"); var im1=node.childNodes[i].getAttribute("im1"); var im2=node.childNodes[i].getAttribute("im2"); var aColor=node.childNodes[i].getAttribute("aCol"); var sColor=node.childNodes[i].getAttribute("sCol"); var chd=node.childNodes[i].getAttribute("child"); var atop=node.childNodes[i].getAttribute("top"); var aopen=node.childNodes[i].getAttribute("open"); var aselect=node.childNodes[i].getAttribute("select"); var acall=node.childNodes[i].getAttribute("call"); var achecked=node.childNodes[i].getAttribute("checked"); var closeable=node.childNodes[i].getAttribute("closeable"); var zST=""; if(aselect)zST+=",SELECT"; if(atop)zST+=",TOP"; if(acall)nodeAskingCall=cId; if(achecked)zST+=",CHECKED"; if((aopen)&&(aopen!="0"))zST+=",OPEN"; var temp=dhtmlObject._globalIdStorageFind(parentId); temp.XMLload=1; dhtmlObject.insertNewItem(parentId,cId,name,0,im0,im1,im2,zST,chd); if(dhtmlObject.parserExtension)dhtmlObject.parserExtension._parseExtension(node.childNodes[i],dhtmlObject.parserExtension,cId,parentId); dhtmlObject.setItemColor(cId,aColor,sColor); if((closeable=="0")||(closeable=="1"))dhtmlObject.setItemCloseable(cId,closeable); var zcall=dhtmlObject._parseXMLTree(dhtmlObject,node.childNodes[i],cId,1); if(zcall!="")nodeAskingCall=zcall; } else if((node.childNodes[i].nodeType==1)&&(node.childNodes[i].tagName == "userdata")) { var name=node.childNodes[i].getAttribute("name"); if((name)&&(node.childNodes[i].childNodes[0])){ dhtmlObject.setUserData(parentId,name,node.childNodes[i].childNodes[0].data); }; }; };
if(!level){ dhtmlObject.lastLoadedXMLId=parentId; dhtmlObject._redrawFrom(dhtmlObject); dhtmlObject.XMLloadingWarning=0; var chArr=dhtmlObject.setCheckList.split(","); for(var n=0;n<chArr.length;n++) if(chArr[n])dhtmlObject.setCheck(chArr[n],1); if(nodeAskingCall!="")dhtmlObject.selectItem(nodeAskingCall,true); } return nodeAskingCall; }; dhtmlXTreeObject.prototype._redrawFrom=function(dhtmlObject,itemObject){ if(!itemObject){ var tempx=dhtmlObject._globalIdStorageFind(dhtmlObject.lastLoadedXMLId); dhtmlObject.lastLoadedXMLId=-1; if(!tempx)return 0; } else tempx=itemObject; for(var i=0;i<tempx.childsCount;i++) { if(!itemObject)tempx.childNodes[i].htmlNode.parentNode.parentNode.style.display=""; if(tempx.childNodes[i].openMe==1) for(var zy=0;zy<tempx.childNodes[i].childNodes.length;zy++) tempx.childNodes[i].htmlNode.childNodes[0].childNodes[zy+1].style.display=""; dhtmlObject._redrawFrom(dhtmlObject,tempx.childNodes[i]); dhtmlObject._correctLine(tempx.childNodes[i]); dhtmlObject._correctPlus(tempx.childNodes[i]); }; 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 try{ if(itemObject.childsCount) { if(itemObject.htmlNode.childNodes[0].childNodes[1].style.display!="none") { var workArray=this.minusArray; itemObject.htmlNode.childNodes[0].childNodes[0].childNodes[2].childNodes[0].src=this.imPath+itemObject.images[1]; } else { 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]; } } catch(e){}; 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))&&(!mode)){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))nodestyle="none";else nodestyle=""; for(var i=1;i<Count;i++) Nodes[i].style.display=nodestyle; } this._correctPlus(itemObject); } dhtmlXTreeObject.prototype._getOpenState=function(itemObject){ 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.onRowSelect=function(e,htmlObject,mode){ if(!htmlObject)htmlObject=this; htmlObject.childNodes[0].className="selectedTreeRow"; if(htmlObject.parentObject.scolor)htmlObject.parentObject.span.style.color=htmlObject.parentObject.scolor; if((htmlObject.parentObject.treeNod.lastSelected)&&(htmlObject.parentObject.treeNod.lastSelected!=htmlObject)) { htmlObject.parentObject.treeNod.lastSelected.childNodes[0].className="standartTreeRow"; if(htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor)htmlObject.parentObject.treeNod.lastSelected.parentObject.span.style.color=htmlObject.parentObject.treeNod.lastSelected.parentObject.acolor; } htmlObject.parentObject.treeNod.lastSelected=htmlObject; if(!mode){if(htmlObject.parentObject.actionHandler)htmlObject.parentObject.actionHandler(htmlObject.parentObject.id);} };
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("img"); img0.border="0";td1.appendChild(img0);img0.style.padding=0; var td11=document.createElement('td'); var inp=document.createElement("img");inp.checked=0;inp.src=this.imPath+this.checkArray[0];inp.style.width="16px";inp.style.height="16px";
if(!acheck)inp.style.display="none"; td11.appendChild(inp); td11.width="16px"; inp.onclick=this.onCheckBoxClick; inp.treeNod=this; inp.parentObject=itemObject;
var td12=document.createElement('td'); td12.className="standartTreeImage"; var img=document.createElement("img");img.onmousedown=this._preventNsDrag; img.border="0"; 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="18px";img.style.height="18px";} else {img.style.width="0px";img.style.height="0px";}
var td2=document.createElement('td'); td2.noWrap=true; itemObject.span=document.createElement('span'); itemObject.span.className="standartTreeRow"; td2.style.width="100%"; itemObject.span.appendChild(document.createTextNode(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.dragAndDropOff)this.dragger.addDraggableItem(td2,this); td2.style.verticalAlign=""; td2.style.cursor=this.style_pointer; tr.appendChild(td1);tr.appendChild(td11);tr.appendChild(td12); tr.appendChild(td2); tbody.appendChild(tr); table.appendChild(tbody); return table; }; dhtmlXTreeObject.prototype.setImagePath=function(newPath){this.imPath=newPath;}; 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[name]=value; }; dhtmlXTreeObject.prototype.getUserData=function(itemId,name){ var sNode=this._globalIdStorageFind(itemId); if(!sNode)return; return eval("sNode."+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) { var temp=this._globalIdStorageFind(itemId); 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); }; 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; 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){ if(this.dragFunc)if(!this.dragFunc(itemObject.id,targetObject.id))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; var Count=targetObject.childsCount;var Nodes=targetObject.childNodes; Nodes[Count]=itemObject; itemObject.treeNod=targetObject.treeNod; targetObject.childsCount++; var tr=this._drawNewTr(Nodes[Count].htmlNode); targetObject.htmlNode.childNodes[0].appendChild(tr); itemObject.parentObject.htmlNode.childNodes[0].removeChild(itemObject.tr);
for(var i=0;i<z.childsCount;i++) if(z.childNodes[i].id==itemObject.id){ z.childNodes[i]=0; break;} oldTree._compressChildList(z.childsCount,z.childNodes); z.childsCount--; itemObject.tr=tr; tr.nodem=itemObject;
itemObject.parentObject=targetObject; if(oldTree!=targetObject.treeNod){if(itemObject.treeNod._registerBranch(itemObject,oldTree))return;this._clearStyles(itemObject);}; if(c>1){oldTree._correctPlus(z.childNodes[c-2]); oldTree._correctLine(z.childNodes[c-2]);} this._correctPlus(targetObject); this._correctLine(targetObject); oldTree._correctPlus(z); this._correctLine(itemObject); this._correctPlus(Nodes[Count]); if(targetObject.childsCount>=2) { this._correctPlus(Nodes[targetObject.childsCount-2]); this._correctLine(Nodes[targetObject.childsCount-2]); } if(this.tscheck)this._correctCheckStates(targetObject); if(oldTree.tscheck)oldTree._correctCheckStates(z); return true; }; 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; 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; this._HideShow(temp,2); if((temp.parentObject)&&(this._getOpenState(temp.parentObject)<0)) this.openItem(temp.parentObject.id); }; 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); 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) { var temp=this._globalIdStorageFind(itemId); if(!temp)return 0; temp.label=newLabel; temp.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML=newLabel; }; 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; } else temp.images[0]=image1; this._correctPlus(temp); }; dhtmlXTreeObject.prototype.getSubItems =function(itemId) { var temp=this._globalIdStorageFind(itemId); if(!temp)return 0;
var z=""; for(i=0;i<temp.childsCount;i++) if(!z)z=temp.childNodes[i].id; else z+=","+temp.childNodes[i].id; return z; }; dhtmlXTreeObject.prototype.getAllSubItems =function(itemId){ return this._getAllSubItems(itemId); } 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+=","+temp.childNodes[i].id; var zb=this._getAllSubItems(0,z,temp.childNodes[i]) if(zb)z+=","+zb; } return z; };
dhtmlXTreeObject.prototype.selectItem=function(itemId,mode){ mode=convertStringToBoolean(mode); var temp=this._globalIdStorageFind(itemId); if(!temp)return 0; if(this._getOpenState(temp.parentObject)==-1) this.openItem(itemId); if(mode) this.onRowSelect(0,temp.htmlNode.childNodes[0].childNodes[0].childNodes[3],false); else this.onRowSelect(0,temp.htmlNode.childNodes[0].childNodes[0].childNodes[3],true); }; dhtmlXTreeObject.prototype.getSelectedItemText=function() { if(this.lastSelected) return this.lastSelected.parentObject.htmlNode.childNodes[0].childNodes[0].childNodes[3].childNodes[0].innerHTML; else return(""); };
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){ state=convertStringToBoolean(state); var sNode=this._globalIdStorageFind(itemId); if(!sNode)return; if(!this.tscheck)return this._setSubChecked(state,sNode); else this._setCheck(sNode,state); this._correctCheckStates(sNode.parentObject); }; dhtmlXTreeObject.prototype._setCheck=function(sNode,state){ var z=sNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0]; if(state=="notsure")sNode.checkstate=2; else if(state)sNode.checkstate=1;else sNode.checkstate=0; z.src=this.imPath+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._setSubChecked=function(state,sNode){ state=convertStringToBoolean(state); if(!sNode)return; for(var i=0;i<sNode.childsCount;i++) { this._setSubChecked(state,sNode.childNodes[i]); }; var z=sNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0]; if(state)sNode.checkstate=1; else sNode.checkstate=0; z.src=this.imPath+this.checkArray[sNode.checkstate]; };
dhtmlXTreeObject.prototype.isItemChecked=function(itemId){ var sNode=this._globalIdStorageFind(itemId); if(!sNode)return; return sNode.checkstate; };
dhtmlXTreeObject.prototype.getAllChecked=function(){ return this._getAllChecked("","",1); } dhtmlXTreeObject.prototype.getAllCheckedBranches=function(){ return this._getAllChecked("","",0); } dhtmlXTreeObject.prototype._getAllChecked=function(htmlNode,list,mode){ if(!htmlNode)htmlNode=this.htmlNode; if(((mode)&&(htmlNode.checkstate==1))||((!mode)&&(htmlNode.checkstate>0))){if(list)list+=","+htmlNode.id;else list=htmlNode.id;} var j=htmlNode.childsCount; for(var i=0;i<j;i++) { list=this._getAllChecked(htmlNode.childNodes[i],list,mode); }; if(list)return list;else return ""; }; dhtmlXTreeObject.prototype.deleteChildItems=function(itemId) { var sNode=this._globalIdStorageFind(itemId); if(!sNode)return; var j=sNode.childsCount; for(var i=0;i<j;i++) { this._deleteNode(sNode.childNodes[0].id,sNode.childNodes[0]); }; }; dhtmlXTreeObject.prototype.deleteItem=function(itemId,selectParent){ this._deleteItem(itemId,selectParent); } dhtmlXTreeObject.prototype._deleteItem=function(itemId,selectParent,skip){ selectParent=convertStringToBoolean(selectParent); var sNode=this._globalIdStorageFind(itemId); if(!sNode)return; if(selectParent)this.selectItem(this.getParentId(this.getSelectedItemId()),1); if(!skip){ this._globalIdStorageRecSub(sNode); }; var zTemp=sNode.parentObject; this._deleteNode(itemId,sNode,skip); this._correctPlus(zTemp); this._correctLine(zTemp); }; dhtmlXTreeObject.prototype._globalIdStorageRecSub=function(itemObject){ for(var i=0;i<itemObject.childsCount;i++) { this._globalIdStorageRecSub(itemObject.childNodes[i]); this._globalIdStorageSub(itemObject.childNodes[i].id); }; this._globalIdStorageSub(itemObject.id); }; dhtmlXTreeObject.prototype.insertNewNext=function(parentItemId,itemId,itemName,itemActionHandler,image1,image2,image3,optionStr,childs){ var sNode=this._globalIdStorageFind(parentItemId); if(!sNode)return(0); this._attachChildNode(0,itemId,itemName,itemActionHandler,image1,image2,image3,optionStr,childs,sNode); };
dhtmlXTreeObject.prototype.getItemIdByIndex=function(itemId,index){ var z=this._globalIdStorageFind(itemId); if(!z)return 0; var temp=z.htmlNode.childNodes[0].childNodes[0]; while(index>0) { temp=temp.nextSibling; if((!temp)||(!temp.nodem))return 0; index--; } return temp.nodem.id; }; dhtmlXTreeObject.prototype.getChildItemIdByIndex=function(itemId,index){ var sNode=this._globalIdStorageFind(itemId); if(!sNode)return(0); if(this.hasChildren(itemId)<index)return 0; return sNode.htmlNode.childNodes[0].childNodes[index].nodem.id; };
dhtmlXTreeObject.prototype.setDragHandler=function(func){if(typeof(func)=="function")this.dragFunc=func;else this.dragFunc=eval(func);}; dhtmlXTreeObject.prototype._clearMove=function(htmlNode){ if(htmlNode.parentObject.span){ htmlNode.parentObject.span.className='standartTreeRow'; if(htmlNode.parentObject.acolor)htmlNode.parentObject.span.style.color=htmlNode.parentObject.acolor; } }; dhtmlXTreeObject.prototype.enableDragAndDrop=function(mode){this.dragAndDropOff=convertStringToBoolean(mode);}; dhtmlXTreeObject.prototype._setMove=function(htmlNode){ if(htmlNode.parentObject.span){ htmlNode.parentObject.span.className='selectedTreeRow'; if(htmlNode.parentObject.scolor)htmlNode.parentObject.span.style.color=htmlNode.parentObject.scolor; } }; dhtmlXTreeObject.prototype._createDragNode=function(htmlObject){ dhtmlObject=htmlObject.parentObject; if(this.lastSelected)this._clearMove(this.lastSelected); var dragSpan=document.createElement('div'); dragSpan.appendChild(document.createTextNode(dhtmlObject.label)); dragSpan.style.position="absolute"; dragSpan.className="dragSpanDiv"; return dragSpan; }
dhtmlXTreeObject.prototype._preventNsDrag=function(e){ if((e)&&(e.preventDefault)){e.preventDefault();return false;} }
dhtmlXTreeObject.prototype._drag=function(sourceHtmlObject,dhtmlObject,targetHtmlObject){ if(!targetHtmlObject.parentObject){targetHtmlObject=this.htmlNode.htmlNode.childNodes[0].childNodes[0].childNodes[1].childNodes[0];} else this._clearMove(targetHtmlObject); if(dhtmlObject.lastSelected)dhtmlObject._setMove(dhtmlObject.lastSelected); if((!this.dragMove)||(this.dragMove()))this._moveNode(sourceHtmlObject.parentObject,targetHtmlObject.parentObject);
}
dhtmlXTreeObject.prototype._dragIn=function(htmlObject,shtmlObject){ if(!htmlObject.parentObject) { return htmlObject; } if((!this._checkParenNodes(shtmlObject.parentObject.id,htmlObject.parentObject,shtmlObject.parentObject))&&(htmlObject.parentObject.id!=shtmlObject.parentObject.id)) { this._setMove(htmlObject); if(this._getOpenState(htmlObject.parentObject)<0) this._autoOpenTimer=window.setTimeout(new callerFunction(this._autoOpenItem,this),1000); this._autoOpenId=htmlObject.parentObject.id; return htmlObject; } else return 0; } dhtmlXTreeObject.prototype._autoOpenItem=function(e,treeObject){ treeObject.openItem(treeObject._autoOpenId); }; dhtmlXTreeObject.prototype._dragOut=function(htmlObject){ if(!htmlObject.parentObject)return 0; this._clearMove(htmlObject);if(this._autoOpenTimer)clearTimeout(this._autoOpenTimer);}
</script>
<table> <tr> <td valign="top">
<div id="treeboxbox_tree" style="width:250; height:218;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div><br> <br> </td> <td rstyle="padding-left:25" valign="top"> <div id="treeboxbox_tree2" style="width:250; height:218;background-color:#f5f5f5;border :1px solid Silver;; overflow:auto;"></div><br> <br>
</td> </tr>
</table> Drag&Drop works in each tree and between trees too. <hr> <XMP> <div id="treeboxbox_tree" style="width:200;height:200"></div> <script> tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); tree.setImagePath("treeImgs/"); //enable Drag&Drop tree.enableDragAndDrop(1); //set my Drag&Drop handler tree.setDragHandler(myDragHandler); tree.loadXML("treeImgs/tree.xml");
function myDragHandler(idFrom,idTo){ //if we return false then drag&drop be aborted return true; } </script> </XMP> <script> tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%",0); tree.setImagePath("treeImgs/"); tree.enableDragAndDrop(1); tree.loadXML("treeImgs/tree3.xml");
tree2=new dhtmlXTreeObject("treeboxbox_tree2","100%","100%",0); tree2.setImagePath("treeImgs/"); tree2.enableDragAndDrop(1); tree2.loadXML("treeImgs/tree5.xml");
</script> <br><br>
</body> </html>
|