root / trunk / web / dojo / dojox / grid / cells / dijit.js @ 10
History | View | Annotate | Download (5.26 KB)
| 1 |
/*
|
|---|---|
| 2 |
Copyright (c) 2004-2010, The Dojo Foundation All Rights Reserved.
|
| 3 |
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
| 4 |
see: http://dojotoolkit.org/license for details
|
| 5 |
*/
|
| 6 |
|
| 7 |
|
| 8 |
if(!dojo._hasResource["dojox.grid.cells.dijit"]){ |
| 9 |
dojo._hasResource["dojox.grid.cells.dijit"]=true; |
| 10 |
dojo.provide("dojox.grid.cells.dijit");
|
| 11 |
dojo.require("dojox.grid.cells");
|
| 12 |
dojo.require("dijit.form.DateTextBox");
|
| 13 |
dojo.require("dijit.form.TimeTextBox");
|
| 14 |
dojo.require("dijit.form.ComboBox");
|
| 15 |
dojo.require("dojo.data.ItemFileReadStore");
|
| 16 |
dojo.require("dijit.form.CheckBox");
|
| 17 |
dojo.require("dijit.form.TextBox");
|
| 18 |
dojo.require("dijit.form.NumberSpinner");
|
| 19 |
dojo.require("dijit.form.NumberTextBox");
|
| 20 |
dojo.require("dijit.form.CurrencyTextBox");
|
| 21 |
dojo.require("dijit.form.HorizontalSlider");
|
| 22 |
dojo.require("dijit.Editor");
|
| 23 |
(function(){
|
| 24 |
var _1=dojox.grid.cells;
|
| 25 |
dojo.declare("dojox.grid.cells._Widget",_1._Base,{widgetClass:dijit.form.TextBox,constructor:function(_2){ |
| 26 |
this.widget=null; |
| 27 |
if(typeof this.widgetClass=="string"){ |
| 28 |
dojo.deprecated("Passing a string to widgetClass is deprecated","pass the widget class object instead","2.0"); |
| 29 |
this.widgetClass=dojo.getObject(this.widgetClass); |
| 30 |
} |
| 31 |
},formatEditing:function(_3,_4){ |
| 32 |
this.needFormatNode(_3,_4);
|
| 33 |
return "<div></div>"; |
| 34 |
},getValue:function(_5){ |
| 35 |
return this.widget.attr("value"); |
| 36 |
},setValue:function(_6,_7){ |
| 37 |
if(this.widget&&this.widget.attr){ |
| 38 |
if(this.widget.onLoadDeferred){ |
| 39 |
var _8=this; |
| 40 |
this.widget.onLoadDeferred.addCallback(function(){ |
| 41 |
_8.widget.attr("value",_7===null?"":_7); |
| 42 |
}); |
| 43 |
}else{
|
| 44 |
this.widget.attr("value",_7); |
| 45 |
} |
| 46 |
}else{
|
| 47 |
this.inherited(arguments); |
| 48 |
} |
| 49 |
},getWidgetProps:function(_9){ |
| 50 |
return dojo.mixin({dir:this.dir,lang:this.lang},this.widgetProps||{},{constraints:dojo.mixin({},this.constraint)||{},value:_9}); |
| 51 |
},createWidget:function(_a,_b,_c){ |
| 52 |
return new this.widgetClass(this.getWidgetProps(_b),_a); |
| 53 |
},attachWidget:function(_d,_e,_f){ |
| 54 |
_d.appendChild(this.widget.domNode);
|
| 55 |
this.setValue(_f,_e);
|
| 56 |
},formatNode:function(_10,_11,_12){ |
| 57 |
if(!this.widgetClass){ |
| 58 |
return _11;
|
| 59 |
} |
| 60 |
if(!this.widget){ |
| 61 |
this.widget=this.createWidget.apply(this,arguments); |
| 62 |
}else{
|
| 63 |
this.attachWidget.apply(this,arguments); |
| 64 |
} |
| 65 |
this.sizeWidget.apply(this,arguments); |
| 66 |
this.grid.rowHeightChanged(_12);
|
| 67 |
this.focus();
|
| 68 |
return undefined; |
| 69 |
},sizeWidget:function(_13,_14,_15){ |
| 70 |
var p=this.getNode(_15),box=dojo.contentBox(p); |
| 71 |
dojo.marginBox(this.widget.domNode,{w:box.w}); |
| 72 |
},focus:function(_16,_17){ |
| 73 |
if(this.widget){ |
| 74 |
setTimeout(dojo.hitch(this.widget,function(){ |
| 75 |
dojox.grid.util.fire(this,"focus"); |
| 76 |
}),0);
|
| 77 |
} |
| 78 |
},_finish:function(_18){ |
| 79 |
this.inherited(arguments); |
| 80 |
dojox.grid.util.removeNode(this.widget.domNode);
|
| 81 |
}}); |
| 82 |
_1._Widget.markupFactory=function(_19,_1a){ |
| 83 |
_1._Base.markupFactory(_19,_1a); |
| 84 |
var d=dojo;
|
| 85 |
var _1b=d.trim(d.attr(_19,"widgetProps")||""); |
| 86 |
var _1c=d.trim(d.attr(_19,"constraint")||""); |
| 87 |
var _1d=d.trim(d.attr(_19,"widgetClass")||""); |
| 88 |
if(_1b){
|
| 89 |
_1a.widgetProps=d.fromJson(_1b); |
| 90 |
} |
| 91 |
if(_1c){
|
| 92 |
_1a.constraint=d.fromJson(_1c); |
| 93 |
} |
| 94 |
if(_1d){
|
| 95 |
_1a.widgetClass=d.getObject(_1d); |
| 96 |
} |
| 97 |
}; |
| 98 |
dojo.declare("dojox.grid.cells.ComboBox",_1._Widget,{widgetClass:dijit.form.ComboBox,getWidgetProps:function(_1e){ |
| 99 |
var _1f=[];
|
| 100 |
dojo.forEach(this.options,function(o){ |
| 101 |
_1f.push({name:o,value:o});
|
| 102 |
}); |
| 103 |
var _20=new dojo.data.ItemFileReadStore({data:{identifier:"name",items:_1f}}); |
| 104 |
return dojo.mixin({},this.widgetProps||{},{value:_1e,store:_20}); |
| 105 |
},getValue:function(){ |
| 106 |
var e=this.widget; |
| 107 |
e.attr("displayedValue",e.attr("displayedValue")); |
| 108 |
return e.attr("value"); |
| 109 |
}}); |
| 110 |
_1.ComboBox.markupFactory=function(_21,_22){ |
| 111 |
_1._Widget.markupFactory(_21,_22); |
| 112 |
var d=dojo;
|
| 113 |
var _23=d.trim(d.attr(_21,"options")||""); |
| 114 |
if(_23){
|
| 115 |
var o=_23.split(","); |
| 116 |
if(o[0]!=_23){ |
| 117 |
_22.options=o; |
| 118 |
} |
| 119 |
} |
| 120 |
}; |
| 121 |
dojo.declare("dojox.grid.cells.DateTextBox",_1._Widget,{widgetClass:dijit.form.DateTextBox,setValue:function(_24,_25){ |
| 122 |
if(this.widget){ |
| 123 |
this.widget.attr("value",new Date(_25)); |
| 124 |
}else{
|
| 125 |
this.inherited(arguments); |
| 126 |
} |
| 127 |
},getWidgetProps:function(_26){ |
| 128 |
return dojo.mixin(this.inherited(arguments),{value:new Date(_26)}); |
| 129 |
}}); |
| 130 |
_1.DateTextBox.markupFactory=function(_27,_28){ |
| 131 |
_1._Widget.markupFactory(_27,_28); |
| 132 |
}; |
| 133 |
dojo.declare("dojox.grid.cells.CheckBox",_1._Widget,{widgetClass:dijit.form.CheckBox,getValue:function(){ |
| 134 |
return this.widget.checked; |
| 135 |
},setValue:function(_29,_2a){ |
| 136 |
if(this.widget&&this.widget.attributeMap.checked){ |
| 137 |
this.widget.attr("checked",_2a); |
| 138 |
}else{
|
| 139 |
this.inherited(arguments); |
| 140 |
} |
| 141 |
},sizeWidget:function(_2b,_2c,_2d){ |
| 142 |
return;
|
| 143 |
}}); |
| 144 |
_1.CheckBox.markupFactory=function(_2e,_2f){ |
| 145 |
_1._Widget.markupFactory(_2e,_2f); |
| 146 |
}; |
| 147 |
dojo.declare("dojox.grid.cells.Editor",_1._Widget,{widgetClass:dijit.Editor,getWidgetProps:function(_30){ |
| 148 |
return dojo.mixin({},this.widgetProps||{},{height:this.widgetHeight||"100px"}); |
| 149 |
},createWidget:function(_31,_32,_33){ |
| 150 |
var _34=new this.widgetClass(this.getWidgetProps(_32),_31); |
| 151 |
dojo.connect(_34,"onLoad",dojo.hitch(this,"populateEditor")); |
| 152 |
return _34;
|
| 153 |
},formatNode:function(_35,_36,_37){ |
| 154 |
this.content=_36;
|
| 155 |
this.inherited(arguments); |
| 156 |
if(dojo.isMoz){
|
| 157 |
var e=this.widget; |
| 158 |
e.open(); |
| 159 |
if(this.widgetToolbar){ |
| 160 |
dojo.place(e.toolbar.domNode,e.editingArea,"before");
|
| 161 |
} |
| 162 |
} |
| 163 |
},populateEditor:function(){ |
| 164 |
this.widget.attr("value",this.content); |
| 165 |
this.widget.placeCursorAtEnd();
|
| 166 |
}}); |
| 167 |
_1.Editor.markupFactory=function(_38,_39){ |
| 168 |
_1._Widget.markupFactory(_38,_39); |
| 169 |
var d=dojo;
|
| 170 |
var h=dojo.trim(dojo.attr(_38,"widgetHeight")||""); |
| 171 |
if(h){
|
| 172 |
if((h!="auto")&&(h.substr(-2)!="em")){ |
| 173 |
h=parseInt(h,10)+"px"; |
| 174 |
} |
| 175 |
_39.widgetHeight=h; |
| 176 |
} |
| 177 |
}; |
| 178 |
})(); |
| 179 |
} |