| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.grid.compat._data.editors"]){ |
| dojo._hasResource["dojox.grid.compat._data.editors"]=true; |
| dojo.provide("dojox.grid.compat._data.editors"); |
| dojo.provide("dojox.grid.compat.editors"); |
| dojo.declare("dojox.grid.editors.Base",null,{constructor:function(_1){ |
| this.cell=_1; |
| },_valueProp:"value",_formatPending:false,format:function(_2,_3){ |
| },needFormatNode:function(_4,_5){ |
| this._formatPending=true; |
| dojox.grid.whenIdle(this,"_formatNode",_4,_5); |
| },cancelFormatNode:function(){ |
| this._formatPending=false; |
| },_formatNode:function(_6,_7){ |
| if(this._formatPending){ |
| this._formatPending=false; |
| dojo.setSelectable(this.cell.grid.domNode,true); |
| this.formatNode(this.getNode(_7),_6,_7); |
| } |
| },getNode:function(_8){ |
| return (this.cell.getNode(_8)||0).firstChild||0; |
| },formatNode:function(_9,_a,_b){ |
| if(dojo.isIE){ |
| dojox.grid.whenIdle(this,"focus",_b,_9); |
| }else{ |
| this.focus(_b,_9); |
| } |
| },dispatchEvent:function(m,e){ |
| if(m in this){ |
| return this[m](e); |
| } |
| },getValue:function(_e){ |
| return this.getNode(_e)[this._valueProp]; |
| },setValue:function(_f,_10){ |
| var n=this.getNode(_f); |
| if(n){ |
| n[this._valueProp]=_10; |
| } |
| },focus:function(_12,_13){ |
| dojox.grid.focusSelectNode(_13||this.getNode(_12)); |
| },save:function(_14){ |
| this.value=this.value||this.getValue(_14); |
| },restore:function(_15){ |
| this.setValue(_15,this.value); |
| },_finish:function(_16){ |
| dojo.setSelectable(this.cell.grid.domNode,false); |
| this.cancelFormatNode(this.cell); |
| },apply:function(_17){ |
| this.cell.applyEdit(this.getValue(_17),_17); |
| this._finish(_17); |
| },cancel:function(_18){ |
| this.cell.cancelEdit(_18); |
| this._finish(_18); |
| }}); |
| dojox.grid.editors.base=dojox.grid.editors.Base; |
| dojo.declare("dojox.grid.editors.Input",dojox.grid.editors.Base,{constructor:function(_19){ |
| this.keyFilter=this.keyFilter||this.cell.keyFilter; |
| },keyFilter:null,format:function(_1a,_1b){ |
| this.needFormatNode(_1a,_1b); |
| return "<input class=\"dojoxGrid-input\" type=\"text\" value=\""+_1a+"\">"; |
| },formatNode:function(_1c,_1d,_1e){ |
| this.inherited(arguments); |
| this.cell.registerOnBlur(_1c,_1e); |
| },doKey:function(e){ |
| if(this.keyFilter){ |
| var key=String.fromCharCode(e.charCode); |
| if(key.search(this.keyFilter)==-1){ |
| dojo.stopEvent(e); |
| } |
| } |
| },_finish:function(_21){ |
| this.inherited(arguments); |
| var n=this.getNode(_21); |
| try{ |
| dojox.grid.fire(n,"blur"); |
| } |
| catch(e){ |
| } |
| }}); |
| dojox.grid.editors.input=dojox.grid.editors.Input; |
| dojo.declare("dojox.grid.editors.Select",dojox.grid.editors.Input,{constructor:function(_23){ |
| this.options=this.options||this.cell.options; |
| this.values=this.values||this.cell.values||this.options; |
| },format:function(_24,_25){ |
| this.needFormatNode(_24,_25); |
| var h=["<select class=\"dojoxGrid-select\">"]; |
| for(var i=0,o,v;((o=this.options[i])!==undefined)&&((v=this.values[i])!==undefined);i++){ |
| h.push("<option",(_24==v?" selected":"")," value=\""+v+"\"",">",o,"</option>"); |
| } |
| h.push("</select>"); |
| return h.join(""); |
| },getValue:function(_2a){ |
| var n=this.getNode(_2a); |
| if(n){ |
| var i=n.selectedIndex,o=n.options[i]; |
| return this.cell.returnIndex?i:o.value||o.innerHTML; |
| } |
| }}); |
| dojox.grid.editors.select=dojox.grid.editors.Select; |
| dojo.declare("dojox.grid.editors.AlwaysOn",dojox.grid.editors.Input,{alwaysOn:true,_formatNode:function(_2e,_2f){ |
| this.formatNode(this.getNode(_2f),_2e,_2f); |
| },applyStaticValue:function(_30){ |
| var e=this.cell.grid.edit; |
| e.applyCellEdit(this.getValue(_30),this.cell,_30); |
| e.start(this.cell,_30,true); |
| }}); |
| dojox.grid.editors.alwaysOn=dojox.grid.editors.AlwaysOn; |
| dojo.declare("dojox.grid.editors.Bool",dojox.grid.editors.AlwaysOn,{_valueProp:"checked",format:function(_32,_33){ |
| return "<input class=\"dojoxGrid-input\" type=\"checkbox\""+(_32?" checked=\"checked\"":"")+" style=\"width: auto\" />"; |
| },doclick:function(e){ |
| if(e.target.tagName=="INPUT"){ |
| this.applyStaticValue(e.rowIndex); |
| } |
| }}); |
| dojox.grid.editors.bool=dojox.grid.editors.Bool; |
| } |