Files
aportil/themes/sources/dhtmlxGrid/codebase/excells/dhtmlxgrid_excell_wbut.js

88 lines
2.8 KiB
JavaScript

/*
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
*/
/*
Textfield with Button eXcell v.1.0 for dhtmlxGrid
(c)DHTMLX LTD. 2005
The corresponding cell value in XML should be
Samples:
<cell>IN637237-23</cell>
<cell>158</cell>
*/
function eXcell_wbut(cell){
this.cell = cell;
this.grid = this.cell.parentNode.grid;
this.edit = function(){
var val = this.getValue().toString();
this.obj = document.createElement("INPUT");
this.obj.readOnly = true;
this.obj.style.width = "60px";
this.obj.style.height = (this.cell.offsetHeight-(this.grid.multiLine?5:4))+"px";
this.obj.style.border = "0px";
this.obj.style.margin = "0px";
this.obj.style.padding = "0px";
this.obj.style.overflow = "hidden";
this.obj.style.fontSize = _isKHTML?"10px":"12px";
this.obj.style.fontFamily = "Arial";
this.obj.wrap = "soft";
this.obj.style.textAlign = this.cell.align;
this.obj.onclick = function(e){(e||event).cancelBubble = true}
this.cell.innerHTML = "";
this.cell.appendChild(this.obj);
this.obj.onselectstart=function(e){ if (!e) e=event; e.cancelBubble=true; return true; };
this.obj.style.textAlign = this.cell.align;
this.obj.value=val;
this.obj.focus()
this.obj.focus()
this.cell.appendChild(document.createTextNode(" ")); // Create space between text box and button
var butElem = document.createElement('input'); // This is the button DOM code
if(_isIE){
butElem.style.height = (this.cell.offsetHeight-(this.grid.multiLine?5:4))+"px";
butElem.style.lineHeight = "5px";
}else{
butElem.style.fontSize = "8px";
butElem.style.width = "10px";
butElem.style.marginTop = "-5px"
}
butElem.type='button'
butElem.name='Lookup'
butElem.value='...'
var inObj = this.obj;
var inCellIndex = this.cell.cellIndex
var inRowId = this.cell.parentNode.idd
var inGrid = this.grid
var inCell = this;
this.dhx_m_func=this.grid.getWButFunction(this.cell._cellIndex);
butElem.onclick = function (e){inCell.dhx_m_func(inCell,inCell.cell.parentNode.idd,inCell.cell._cellIndex,val)};
this.cell.appendChild(butElem);
}
this.detach = function(){
this.setValue(this.obj.value);
return this.val!=this.getValue();
}
}
eXcell_wbut.prototype = new eXcell;
dhtmlXGridObject.prototype.getWButFunction=function(index){
if (this._wbtfna) return this._wbtfna[index];
else return (function(){});
}
dhtmlXGridObject.prototype.setWButFunction=function(index,func){
if (!this._wbtfna) this._wbtfna=new Array();
this._wbtfna[index]=func;
}
//(c)dhtmlx ltd. www.dhtmlx.com