| /* |
| 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.cells.dijit"]){ |
| dojo._hasResource["dojox.grid.cells.dijit"]=true; |
| dojo.provide("dojox.grid.cells.dijit"); |
| dojo.require("dojox.grid.cells"); |
| dojo.require("dijit.form.DateTextBox"); |
| dojo.require("dijit.form.TimeTextBox"); |
| dojo.require("dijit.form.ComboBox"); |
| dojo.require("dojo.data.ItemFileReadStore"); |
| dojo.require("dijit.form.CheckBox"); |
| dojo.require("dijit.form.TextBox"); |
| dojo.require("dijit.form.NumberSpinner"); |
| dojo.require("dijit.form.NumberTextBox"); |
| dojo.require("dijit.form.CurrencyTextBox"); |
| dojo.require("dijit.form.HorizontalSlider"); |
| dojo.require("dijit.Editor"); |
| (function(){ |
| var _1=dojox.grid.cells; |
| dojo.declare("dojox.grid.cells._Widget",_1._Base,{widgetClass:dijit.form.TextBox,constructor:function(_2){ |
| this.widget=null; |
| if(typeof this.widgetClass=="string"){ |
| dojo.deprecated("Passing a string to widgetClass is deprecated","pass the widget class object instead","2.0"); |
| this.widgetClass=dojo.getObject(this.widgetClass); |
| } |
| },formatEditing:function(_3,_4){ |
| this.needFormatNode(_3,_4); |
| return "<div></div>"; |
| },getValue:function(_5){ |
| return this.widget.attr("value"); |
| },setValue:function(_6,_7){ |
| if(this.widget&&this.widget.attr){ |
| if(this.widget.onLoadDeferred){ |
| var _8=this; |
| this.widget.onLoadDeferred.addCallback(function(){ |
| _8.widget.attr("value",_7===null?"":_7); |
| }); |
| }else{ |
| this.widget.attr("value",_7); |
| } |
| }else{ |
| this.inherited(arguments); |
| } |
| },getWidgetProps:function(_9){ |
| return dojo.mixin({},this.widgetProps||{},{constraints:dojo.mixin({},this.constraint)||{},value:_9}); |
| },createWidget:function(_a,_b,_c){ |
| return new this.widgetClass(this.getWidgetProps(_b),_a); |
| },attachWidget:function(_d,_e,_f){ |
| _d.appendChild(this.widget.domNode); |
| this.setValue(_f,_e); |
| },formatNode:function(_10,_11,_12){ |
| if(!this.widgetClass){ |
| return _11; |
| } |
| if(!this.widget){ |
| this.widget=this.createWidget.apply(this,arguments); |
| }else{ |
| this.attachWidget.apply(this,arguments); |
| } |
| this.sizeWidget.apply(this,arguments); |
| this.grid.rowHeightChanged(_12); |
| this.focus(); |
| return undefined; |
| },sizeWidget:function(_13,_14,_15){ |
| var p=this.getNode(_15),box=dojo.contentBox(p); |
| dojo.marginBox(this.widget.domNode,{w:box.w}); |
| },focus:function(_16,_17){ |
| if(this.widget){ |
| setTimeout(dojo.hitch(this.widget,function(){ |
| dojox.grid.util.fire(this,"focus"); |
| }),0); |
| } |
| },_finish:function(_18){ |
| this.inherited(arguments); |
| dojox.grid.util.removeNode(this.widget.domNode); |
| }}); |
| _1._Widget.markupFactory=function(_19,_1a){ |
| _1._Base.markupFactory(_19,_1a); |
| var d=dojo; |
| var _1b=d.trim(d.attr(_19,"widgetProps")||""); |
| var _1c=d.trim(d.attr(_19,"constraint")||""); |
| var _1d=d.trim(d.attr(_19,"widgetClass")||""); |
| if(_1b){ |
| _1a.widgetProps=d.fromJson(_1b); |
| } |
| if(_1c){ |
| _1a.constraint=d.fromJson(_1c); |
| } |
| if(_1d){ |
| _1a.widgetClass=d.getObject(_1d); |
| } |
| }; |
| dojo.declare("dojox.grid.cells.ComboBox",_1._Widget,{widgetClass:dijit.form.ComboBox,getWidgetProps:function(_1e){ |
| var _1f=[]; |
| dojo.forEach(this.options,function(o){ |
| _1f.push({name:o,value:o}); |
| }); |
| var _20=new dojo.data.ItemFileReadStore({data:{identifier:"name",items:_1f}}); |
| return dojo.mixin({},this.widgetProps||{},{value:_1e,store:_20}); |
| },getValue:function(){ |
| var e=this.widget; |
| e.attr("displayedValue",e.attr("displayedValue")); |
| return e.attr("value"); |
| }}); |
| _1.ComboBox.markupFactory=function(_21,_22){ |
| _1._Widget.markupFactory(_21,_22); |
| var d=dojo; |
| var _23=d.trim(d.attr(_21,"options")||""); |
| if(_23){ |
| var o=_23.split(","); |
| if(o[0]!=_23){ |
| _22.options=o; |
| } |
| } |
| }; |
| dojo.declare("dojox.grid.cells.DateTextBox",_1._Widget,{widgetClass:dijit.form.DateTextBox,setValue:function(_24,_25){ |
| if(this.widget){ |
| this.widget.attr("value",new Date(_25)); |
| }else{ |
| this.inherited(arguments); |
| } |
| },getWidgetProps:function(_26){ |
| return dojo.mixin(this.inherited(arguments),{value:new Date(_26)}); |
| }}); |
| _1.DateTextBox.markupFactory=function(_27,_28){ |
| _1._Widget.markupFactory(_27,_28); |
| }; |
| dojo.declare("dojox.grid.cells.CheckBox",_1._Widget,{widgetClass:dijit.form.CheckBox,getValue:function(){ |
| return this.widget.checked; |
| },setValue:function(_29,_2a){ |
| if(this.widget&&this.widget.attributeMap.checked){ |
| this.widget.attr("checked",_2a); |
| }else{ |
| this.inherited(arguments); |
| } |
| },sizeWidget:function(_2b,_2c,_2d){ |
| return; |
| }}); |
| _1.CheckBox.markupFactory=function(_2e,_2f){ |
| _1._Widget.markupFactory(_2e,_2f); |
| }; |
| dojo.declare("dojox.grid.cells.Editor",_1._Widget,{widgetClass:dijit.Editor,getWidgetProps:function(_30){ |
| return dojo.mixin({},this.widgetProps||{},{height:this.widgetHeight||"100px"}); |
| },createWidget:function(_31,_32,_33){ |
| var _34=new this.widgetClass(this.getWidgetProps(_32),_31); |
| dojo.connect(_34,"onLoad",dojo.hitch(this,"populateEditor")); |
| return _34; |
| },formatNode:function(_35,_36,_37){ |
| this.content=_36; |
| this.inherited(arguments); |
| if(dojo.isMoz){ |
| var e=this.widget; |
| e.open(); |
| if(this.widgetToolbar){ |
| dojo.place(e.toolbar.domNode,e.editingArea,"before"); |
| } |
| } |
| },populateEditor:function(){ |
| this.widget.attr("value",this.content); |
| this.widget.placeCursorAtEnd(); |
| }}); |
| _1.Editor.markupFactory=function(_38,_39){ |
| _1._Widget.markupFactory(_38,_39); |
| var d=dojo; |
| var h=dojo.trim(dojo.attr(_38,"widgetHeight")||""); |
| if(h){ |
| if((h!="auto")&&(h.substr(-2)!="em")){ |
| h=parseInt(h,10)+"px"; |
| } |
| _39.widgetHeight=h; |
| } |
| }; |
| })(); |
| } |