Changeset 426 for Dev/trunk/client/qed/model/widgets/QuestionWidget.js
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk
- Property svn:ignore
-
old new 1 1 data 2 2 nbproject 3 node_modules
-
- Property svn:ignore
-
Dev/trunk/client
- Property svn:externals
-
old new 1 dojo http://svn.dojotoolkit.org/src/tags/release-1.8. 0/dojo2 dijit http://svn.dojotoolkit.org/src/tags/release-1.8. 0/dijit3 dojox http://svn.dojotoolkit.org/src/tags/release-1.8. 0/dojox4 util http://svn.dojotoolkit.org/src/tags/release-1.8. 0/util1 dojo http://svn.dojotoolkit.org/src/tags/release-1.8.3/dojo 2 dijit http://svn.dojotoolkit.org/src/tags/release-1.8.3/dijit 3 dojox http://svn.dojotoolkit.org/src/tags/release-1.8.3/dojox 4 util http://svn.dojotoolkit.org/src/tags/release-1.8.3/util
-
- Property svn:externals
-
Dev/trunk/client/qed/model/widgets/QuestionWidget.js
r417 r426 2 2 'dijit/_TemplatedMixin','dijit/_WidgetsInTemplateMixin', 3 3 'dojo/text!./templates/QuestionWidget.html','dijit/form/TextBox', 4 'dijit/form/Textarea','../../widgets/MultipleChoiceWidget'], 5 function(declare,lang,domConstruct,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,templateString,TextBox,Textarea,MultipleChoiceWidget){ 6 return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],{ 7 templateString: templateString, 8 mode: 'view', // view || edit 9 name: '', 10 value: null, 11 _scale: null, 12 _widgetCache: null, 13 constructor: function() { 14 this.inherited(arguments); 15 this.value = {}; 16 this._widgetCache = {}; 17 }, 18 postCreate: function() { 19 this._resetValue = this.value; 20 this.scaleSelector.set('disabled', this.mode == 'edit'); 21 }, 22 _setValueAttr: function(value) { 23 this.value = value; 24 this._onTypeChange(value.scale || 'string'); 25 this.ourForm.set('value',value); 26 }, 27 _getValueAttr: function() { 28 var value = this.ourForm.get('value'); 29 lang.mixin(this.value,value); 30 return this.value; 31 }, 32 _onTypeChange: function(scale) { 33 if ( this._scale == scale ) return; 34 this._scale = scale; 35 domConstruct.empty(this.scaleDetails); 36 var widget = this._getTypeWidget(scale); 37 widget && widget.placeAt(this.scaleDetails,'only'); 38 }, 39 _getTypeWidget: function(scale) { 40 var widget = this._widgetCache[scale]; 41 if (!widget) { 42 switch(scale) { 43 case 'string': 44 widget = new TextBox({ 45 name: 'answers', 46 disabled: this.mode == 'view' 47 }); 48 break; 49 case 'text': 50 widget = new Textarea({ 51 name: 'answers', 52 disabled: this.mode == 'view', 53 style: 'min-height: 120px' 54 }); 55 break; 56 case 'singleChoice': 57 case 'multipleChoice': 58 widget = new MultipleChoiceWidget({ 59 name: 'answers', 60 mode: this.mode, 61 allowMultiple: scale == 'multipleChoice' 62 }); 63 break; 64 } 65 this._widgetCache[scale] = widget; 4 'dijit/form/Textarea','../../widgets/MultipleChoiceWidget' 5 ], function(declare,lang,domConstruct,_WidgetBase,_TemplatedMixin, 6 _WidgetsInTemplateMixin,templateString,TextBox,Textarea,MultipleChoiceWidget){ 7 return declare([_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],{ 8 templateString: templateString, 9 mode: 'view', // view || edit 10 name: '', 11 value: null, 12 _scale: null, 13 _widgetCache: null, 14 constructor: function() { 15 this.inherited(arguments); 16 this.value = {}; 17 this._widgetCache = {}; 18 }, 19 postCreate: function() { 20 this._resetValue = this.value; 21 this.scaleSelector.set('disabled', this.mode === 'edit'); 22 }, 23 _setValueAttr: function(value) { 24 this.value = value; 25 this._onTypeChange(value.scale || 'string'); 26 this.ourForm.set('value',value); 27 }, 28 _getValueAttr: function() { 29 var value = this.ourForm.get('value'); 30 lang.mixin(this.value,value); 31 return this.value; 32 }, 33 _onTypeChange: function(scale) { 34 if ( this._scale === scale ) { return; } 35 this._scale = scale; 36 domConstruct.empty(this.scaleDetails); 37 var widget = this._getTypeWidget(scale); 38 if ( widget ) { widget.placeAt(this.scaleDetails,'only'); } 39 }, 40 _getTypeWidget: function(scale) { 41 var widget = this._widgetCache[scale]; 42 if (!widget) { 43 switch(scale) { 44 case 'string': 45 widget = new TextBox({ 46 name: 'answers', 47 disabled: this.mode === 'view' 48 }); 49 break; 50 case 'text': 51 widget = new Textarea({ 52 name: 'answers', 53 disabled: this.mode === 'view', 54 style: 'min-height: 120px' 55 }); 56 break; 57 case 'singleChoice': 58 case 'multipleChoice': 59 widget = new MultipleChoiceWidget({ 60 name: 'answers', 61 mode: this.mode, 62 allowMultiple: scale === 'multipleChoice' 63 }); 64 break; 66 65 } 67 return widget; 68 }, 69 reset: function() { 70 this.ourForm.reset(); 71 this._setValueAttr(this._resetValue); 66 this._widgetCache[scale] = widget; 72 67 } 73 }); 68 return widget; 69 }, 70 reset: function() { 71 this.ourForm.reset(); 72 this._setValueAttr(this._resetValue); 73 } 74 74 }); 75 });
Note: See TracChangeset
for help on using the changeset viewer.