/* Product Name: dhtmlxSuite Version: 5.2.0 Edition: Professional License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com Copyright UAB Dinamenta http://www.dhtmlx.com */ if (window.dhtmlxHierarchy){ if (window.dhtmlXCellObject) dhtmlXCellObject.prototype.attachPropertyGrid = function() { var p = this.attachGrid(); new dhtmlXPropertyGrid(p); return p; } function eXcell_tree_property(cell){ if (cell){ this.cell = cell; this.grid = this.cell.parentNode.grid; } this.isDisabled = function(){ return true; } this.getValue = function(){ return this.cell.parentNode.valTag.innerHTML; } } eXcell_tree_property.prototype = new eXcell_tree; eXcell_tree_property.prototype.setValue = function(valAr){ if (this.cell.parentNode.imgTag) return this.setLabel(valAr); if ((this.grid._tgc.iconTree==null)||(this.grid._tgc.iconTree!=this.grid.iconTree)){ var _tgc={}; _tgc.imst="" _tgc.plus=_tgc.imst+"plus.gif"+_tgc.imact; _tgc.minus=_tgc.imst+"minus.gif"+_tgc.imact; _tgc.blank=_tgc.imst+"blank.gif"+_tgc.imact; _tgc.start="
"; _tgc.itemim=""; _tgc.close="
"; this.grid._tgc=_tgc; } var _h2=this.grid._h2; var _tgc=this.grid._tgc; var rid=this.cell.parentNode.idd; var row=this.grid._h2.get[rid]; if (this.grid.kidsXmlFile || this.grid._slowParse) { row.has_kids=(row.has_kids||(this.cell.parentNode._attrs["xmlkids"]&&(row.state!="minus"))); row._xml_await=!!row.has_kids; } row.image=row.image||(this.cell._attrs["image"]||"leaf.gif"); row.label=valAr; var html=[_tgc.start]; //if has children if(row.has_kids){ html.push(_tgc.plus); row.state="plus" } else html.push(_tgc.imst+row.state+".gif"+_tgc.imact+_tgc.itemim); html.push(row.label); html.push(_tgc.close); this.cell.innerHTML=html.join(""); this.cell.style.paddingLeft="0px"; this.cell.parentNode.imgTag=this.cell.childNodes[0].childNodes[0]; this.cell.parentNode.valTag=this.cell.childNodes[0].childNodes[1]; if (row.childs.length) { this.grid.getRowById(this.cell.parentNode.idd)._attrs["class"] = " dhx_parent_row "; this.cell.nextSibling.style.borderLeft="1px solid #D4D0C8"; } if (_isKHTML) this.cell.vAlign="top"; if (row.parent.id!=0 && row.parent.state=="plus"){ this.grid._updateTGRState(row.parent,false); this.cell.parentNode._skipInsert=true; } this.grid.callEvent("onCellChanged",[rid,this.cell._cellIndex,valAr]); } } function eXcell_list(cell){ if (cell){ this.cell=cell; this.grid=this.cell.parentNode.grid; } this.edit=function(){ this.cell.innerHTML=""; this.obj=this.cell.firstChild; this.obj.onclick=function(e){ (e||event).cancelBubble=true } this.obj.onmousedown=function(e){ (e||event).cancelBubble=true } this.obj.onkeydown=function(e){ var ev = (e||event); if (ev.keyCode == 9 || ev.keyCode == 13){ globalActiveDHTMLGridObject.entBox.focus(); globalActiveDHTMLGridObject.doKey({ keyCode: ev.keyCode, shiftKey: ev.shiftKey, srcElement: "0" }); return false; } ev.cancelBubble=true } var self=this; this.obj.onchange=function(){ self.grid.editStop(); self=null; } var opt=this.getAttribute("values").split(","); for (var i=0; i < opt.length; i++) this.obj.options[i]=new Option(opt[i],opt[i]); this.obj.value=this.cell._val this.obj.focus() } this.getValue=function(){ return this.cell._val; } this.detach=function(){ var val=this.obj.value; var sel=this.obj.selectedIndex; this.setValue(sel==-1?"":this.obj.options[sel].value); return val!= this.getValue(); } } eXcell_list.prototype=new eXcell; eXcell_list.prototype.setValue=function(val){ this.cell._val=val; if (!val||val.toString()._dhx_trim() == ""){ this.cell._clearCell=true; this.setCValue(" ",""); } else { this.cell._clearCell=false; this.setCValue(this.grid._aplNF(val, this.cell._cellIndex)); } } function dhtmlXPropertyGrid(cont){ var t; if (cont.objBox) t = cont; else t = new dhtmlXGridObject(cont); t.setHeader("Name,Value"); t.setColAlign("left,left"); if (window.dhtmlxHierarchy){ //treegrid available t.setColTypes("tree_property,ro"); t.isTreeGrid=function(){return true;} t.enableSmartXMLParsing(false) } else t.setColTypes("ro,ro"); t.setColSorting("na,na") t.setInitWidths("*,*"); t.setNoHeader(true); t.setSkin("dhx_skyblue"); t.entBox.className += " gridbox_property"; t.i18n.validation_error="Value is incorrect"; t.attachEvent("onRowSelect",function(id,ind){ if (!this.editor){ this.selectCell(this.getRowIndex(id),1); this.editCell(); } }) t.attachEvent("onBeforeSelect",function(id){ //if (this._h2 && this._h2.get[id].childs.length) return false; if (this._block_selection) return false; return true; }) t.attachEvent("onRowCreated",function(id,row){ if (!this._h2 || !this._h2.get[id].childs.length){ row.childNodes[1].style.backgroundColor="white"; } }) t.attachEvent("onEditCell",function(stage,id,ind,nv,ov){ if (stage==1 && this.editor && this.editor.obj && this.editor.obj.select) this.editor.obj.select(); if (stage==2 && ov!=nv) { var val=this.cells(id,1).getAttribute("validate"); var result=true; switch(val){ case "int": result=(parseFloat(nv)==nv); break; } if (result){ this._block_selection=false; this.callEvent("onPropertyChanged",[this.cells(id,0).getValue(),nv,ov]); } else { alert(this.i18n.validation_error); this._block_selection=true; var self=this; window.setTimeout(function(){ self.selectCell(id,ind) self.editCell(); },1) } } return true; }) t._key_events.k13_0_0=t._key_events.k9_0_0=t._key_events.k40_0_0; t.getProperties=function(){ this.editStop(true); var data={}; this.forEachRow(function(id){ data[this.cells(id,0).getValue()]=this.cells(id,1).getValue(); }); return data; } t.setProperties=function(data){ this.editStop(); this.forEachRow(function(id){ var t=this.cells(id,0).getValue(); if (typeof data[t] != "undefined") this.cells(id,1).setValue(data[t]); }) this.callEvent("onPropertyChanged",[]); } return t; }