Ignore:
Timestamp:
07/26/12 16:03:40 (13 years ago)
Author:
jkraaijeveld
Message:

Created a factory for the inner widgets on the Question edit screen - can be easily made more generic if necessary too.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Dev/branches/rest-dojo-ui/client/rft/ui/QuestionEditorPreviewItem.js

    r376 r378  
    99        'dijit/_WidgetsInTemplateMixin',
    1010        'dijit/form/TextBox',
    11         'rft/ui/PreviewWidgets/HeaderItem',
    12         'rft/ui/PreviewWidgets/TextItem',
     11        'rft/ui/InnerWidgetFactory',
    1312        'dojo/text!./templates/QuestionEditorPreviewItem.html',
    14         ], function(declare, fx, _WidgetBase, domClass, lang, on, _TemplatedMixin, _WidgetsInTemplateMixin, TextBox, HeaderItem, TextItem, templateFull) {
     13        ], function(declare, fx, _WidgetBase, domClass, lang, on, _TemplatedMixin, _WidgetsInTemplateMixin, TextBox, InnerWidgetFactory, templateFull) {
    1514                return declare("rft.ui.QuestionEditorPreviewItem", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
    1615
     
    4241                                        this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconAccept", "rftIconEdit");
    4342                                        this.editButtonNode.set("label", "Edit");
    44                                         this.innerWidget.save();
    4543                                }
    4644                                else {
    4745                                        this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconEdit", "rftIconAccept");
    4846                                        this.editButtonNode.set("label", "Save");
    49                                         this.innerWidget.edit();
    5047                                }
    5148                                this._editing = !this._editing;
     
    8481                        },
    8582                        getContent: function() {
    86                                 return {        data: this.innerWidget.getContent(),
    87                                                         type: this.item.type };
     83                                return this.innerWidget.getObject();
    8884                        },
    8985                        removeObject: function(widget) {
     
    9389                                // This always creates a textbox as innerwidget pending creation of actual innerWidgets.
    9490                                // Introduce a better way to create these widgets than a switch statement, based on item.widgetType? Perhaps "new eval(item.widgetType)({});" ?
     91
     92                                this.innerWidget = new InnerWidgetFactory().createWidget( this.item );
     93                                /*
    9594                                this.innerWidget = eval("new "+ this.item.type + "({ disabled: true });");
    9695                                this.innerWidget.setContent(this.item.data);
Note: See TracChangeset for help on using the changeset viewer.