Index: Dev/branches/rest-dojo-ui/client/rft/ui/QuestionEditorPreviewItem.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/QuestionEditorPreviewItem.js	(revision 403)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/QuestionEditorPreviewItem.js	(revision 404)
@@ -47,5 +47,5 @@
                     this.innerWidget.set('readOnly',true);
                 }
-                this.titleNode.innerHTML = this.item.type+" [preview]";
+                this.titleNode.innerHTML = (this.item.code||"(no node)")+" : "+this.item.type+" [preview]";
             },
             _showEditWidget: function() {
@@ -56,5 +56,5 @@
                     this.innerWidget.startup();
                 }
-                this.titleNode.innerHTML = this.item.type+" [editing]";
+                this.titleNode.innerHTML = (this.item.code||"(no node)")+" : "+this.item.type+" [editing]";
             },
             onClose: function() {},
@@ -84,5 +84,5 @@
                     this._showEditWidget();
                     this.editButtonNode.iconNode.className = this.editButtonNode.iconNode.className.replace("rftIconEdit", "rftIconAccept");
-                    this.editButtonNode.set("label", "Save");
+                    this.editButtonNode.set("label", "Done");
                 }
                 this._editing = !this._editing;
Index: Dev/branches/rest-dojo-ui/client/rft/ui/content/ContentWidgetFactory.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/content/ContentWidgetFactory.js	(revision 403)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/content/ContentWidgetFactory.js	(revision 404)
@@ -4,4 +4,5 @@
     'dojo/_base/lang', 
     'dojo/dom-construct', 
+    'dijit/_TemplatedMixin',
     'dijit/_WidgetBase',
     'dijit/_Container',
@@ -13,6 +14,7 @@
     'dijit/form/TextBox',
     'dojox/layout/TableContainer',
+    './../lists/_EditableListMixin',
     './../lists/OrderedList'
-],function(array, declare, lang, domConstruct, _WidgetBase, _Container, Button, CheckBox, NumberSpinner, RadioButton, Textarea, TextBox, TableContainer, OrderedList) {
+],function(array, declare, lang, domConstruct, _TemplatedMixin, _WidgetBase, _Container, Button, CheckBox, NumberSpinner, RadioButton, Textarea, TextBox, TableContainer, _EditableListMixin, OrderedList) {
     var factory = declare('rft.ui.content.ContentWidgetFactory', [], {
         /* No default type, all should be valid */
@@ -331,7 +333,7 @@
 
             var ctor = this.options.multiple === true ? CheckBox : RadioButton;
-            array.forEach(this.options.items || ["Aap", "Noot"],function(item){
+            array.forEach(this.options.items ,function(item){
                 table.addChild(new ctor({
-                    title: item
+                        title: item
                 }));
             },this);
@@ -362,9 +364,8 @@
     });
 
-    var MCOptionItem = declare([_WidgetBase,_Container],{
+    var MCOptionItem = declare([_WidgetBase,_TemplatedMixin,_Container],{
+        templateString: '<div><span class="dojoDndHandle">=</span></div>',
         _textBox: null,
         postCreate: function() {
-            this.innerHTML = '<span class="dojoDndHandle">=</span>';
-
             this._textBox = new TextBox({});
             this.addChild(this._textBox);
@@ -387,4 +388,27 @@
     });
 
+    var MCOptionList = declare([OrderedList,_EditableListMixin],{
+        type: 'multipleChoiceOption',
+        withHandles: true,
+        _createAvatarNode: function(item){
+            return domConstruct.create("div",{
+                'class': 'dragAvatar',
+                innerHTML: item
+            });
+        },
+        _createListNode: function(item) {
+            var w = new MCOptionItem();
+            w.startup();
+            w.set('value',item);
+            w.on('delete',lang.hitch(this,'_onRemove',w));
+            return w.domNode;
+        },
+        _onRemove: function(w) {
+            w.destroyRecursive();
+            this.removeCallback && this.removeCallback(item);
+            this.source.sync();
+        }
+    });
+
     var MultipleChoiceInputEdit = declare([_WidgetBase, _Container], {
         _codeInput: null,
@@ -412,23 +436,5 @@
             add.startup();
 
-            this._optionsList = new OrderedList({
-                type: 'multipleChoiceOption',
-                withHandles: true,
-                _createAvatarNode: function(item){
-                    return domConstruct.create("div",{
-                        'class': 'dragAvatar',
-                        innerHTML: item
-                    });
-                },
-                _createListNode: function(item) {
-                    var w = new MCOptionItem();
-                    w.startup();
-                    w.set('value',item);
-                    w.on('delete',lang.hitch(this,function(){
-                        this._optionsList.removeItem(w);
-                    }));
-                    return w.domNode;
-                }
-            });
+            this._optionsList = new MCOptionList();
             table.addChild(this._optionsList);
             this._optionsList.startup();
@@ -436,4 +442,8 @@
             this.addChild(table);
             table.startup();
+        },
+
+        _addOption: function() {
+            this._optionsList.appendItems([""]);
         },
 
Index: Dev/branches/rest-dojo-ui/client/rft/ui/lists/List.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/lists/List.js	(revision 403)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/lists/List.js	(revision 404)
@@ -9,84 +9,83 @@
     'dijit/layout/BorderContainer',
     'dojo/text!./templates/List.html'
-    ],function(
-        declare,
-        lang,
-        Source,
-        _TemplatedMixin,
-        _WidgetBase,
-        _WidgetsInTemplateMixin,
-        registry,
-        BorderContainer,
-        templateString
-        ){
-        return declare('rft.ui.lists.List',[BorderContainer,_TemplatedMixin,_WidgetsInTemplateMixin],{
-            templateString: templateString,
-            baseClass: 'rftList',
-            removeCallback: null,
-            type: 'text',
-            withHandles: false,
-            source: null,
+],function(
+    declare,
+    lang,
+    Source,
+    _TemplatedMixin,
+    _WidgetBase,
+    _WidgetsInTemplateMixin,
+    registry,
+    BorderContainer,
+    templateString){
+    return declare('rft.ui.lists.List',[BorderContainer,_TemplatedMixin,_WidgetsInTemplateMixin],{
+        templateString: templateString,
+        baseClass: 'rftList',
+        removeCallback: null,
+        type: 'text',
+        withHandles: false,
+        source: null,
 
-            startup: function() {
-                this.inherited(arguments);
+        startup: function() {
+            this.inherited(arguments);
 
-                if (this.title) {
-                    this.titleNode.innerHTML = this.title;
-                }
-
-                this.source = new Source(this.sourceNode.domNode, {
-                    accept: [this.type],
-                    singular: true,
-                    withHandles: this.withHandles,
-                    creator: lang.hitch(this, this._createNode)
-                });
-            },
-
-            _createNode: function(item, hint) {
-                var node = hint === "avatar" ?
-                        this._createAvatarNode(item) : this._createListNode(item);
-                return node && {
-                    node: node,
-                    data: item,
-                    type: this.type
-                };
-            },
-            _createListNode: function(item) {},
-            _createAvatarNode: function(item) {},
-
-            appendItem: function(item) {
-                this.source.insertNodes(false,[item]);
-            },
-            appendItems: function(items) {
-                this.source.insertNodes(false,items);
-            },
-
-            getItems: function() {
-                return this.source.getAllNodes()
-                .map(function(node){
-                    return this.source.getItem(node.id).data;
-                },this);
-            },
-
-            deleteItems: function() {
-                this.source.getAllNodes()
-                .forEach(function(node){
-                    registry.byNode(node).destroyRecursive();
-                });
-                this.source.sync();
-            },
-
-            removeItem: function(item){
-                this.source.getAllNodes()
-                .filter(lang.hitch(this,function(node){
-                    return this.source.getItem(node.id).data === item;
-                }))
-                .forEach(lang.hitch(this,function(node){
-                    registry.byNode(node).destroyRecursive();
-                    this.removeCallback && this.removeCallback(item);
-                }));
-                this.source.sync();
+            if (this.title) {
+                this.titleNode.innerHTML = this.title;
             }
 
-        });
+            this.source = new Source(this.sourceNode.domNode, {
+                accept: [this.type],
+                singular: true,
+                withHandles: this.withHandles,
+                creator: lang.hitch(this, this._createNode)
+            });
+        },
+
+        _createNode: function(item, hint) {
+            var node = hint === "avatar" ?
+                    this._createAvatarNode(item) : this._createListNode(item);
+            return node && {
+                node: node,
+                data: item,
+                type: this.type
+            };
+        },
+        _createListNode: function(item) {},
+        _createAvatarNode: function(item) {},
+
+        appendItem: function(item) {
+            this.source.insertNodes(false,[item]);
+        },
+        appendItems: function(items) {
+            this.source.insertNodes(false,items);
+        },
+
+        getItems: function() {
+            return this.source.getAllNodes()
+            .map(function(node){
+                return this.source.getItem(node.id).data;
+            },this);
+        },
+
+        deleteItems: function() {
+            this.source.getAllNodes()
+            .forEach(function(node){
+                registry.byNode(node).destroyRecursive();
+            });
+            this.source.sync();
+        },
+
+        removeItem: function(item){
+            this.source.getAllNodes()
+            .filter(lang.hitch(this,function(node){
+                return this.source.getItem(node.id).data === item;
+            }))
+            .forEach(lang.hitch(this,function(node){
+                registry.byNode(node).destroyRecursive();
+                this.removeCallback && this.removeCallback(item);
+            }));
+            this.source.sync();
+        }
+
     });
+});
Index: Dev/branches/rest-dojo-ui/client/rft/ui/lists/OrderedList.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/lists/OrderedList.js	(revision 403)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/lists/OrderedList.js	(revision 404)
@@ -45,5 +45,5 @@
                 var node = this.source.getSelectedNodes()[0];
                 if (node) {
-                    if (dir == "up") {
+                    if (dir === "up") {
                         if (node.previousSibling) {
                             return node.parentNode.insertBefore(node, node.previousSibling);
@@ -52,5 +52,5 @@
                         }
 
-                    } else if (dir == "down") {
+                    } else if (dir === "down") {
                         if (node.nextSibling) {
                             return node.parentNode.insertBefore(node.nextSibling, node);
Index: Dev/branches/rest-dojo-ui/client/rft/ui/lists/_EditableListMixin.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/lists/_EditableListMixin.js	(revision 404)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/lists/_EditableListMixin.js	(revision 404)
@@ -0,0 +1,16 @@
+define([
+    'dojo/_base/declare',
+    'dojo/_base/lang',
+    'dijit/registry'
+],function(declare,lang,registry){
+    return declare('rft.ui.lists._EditableListMixin',null,{
+        getItems: function() {
+            return this.source.getAllNodes()
+            .map(function(node){
+                var value = registry.byId(node.id).get('value');
+                this.source.setItem(node.id, value)
+                return value;
+            },this);
+        }
+    });
+});
Index: Dev/branches/rest-dojo-ui/client/rft/ui/templates/QuestionEditorToolkit.html
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/templates/QuestionEditorToolkit.html	(revision 403)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/templates/QuestionEditorToolkit.html	(revision 404)
@@ -5,5 +5,5 @@
 				<fieldset class="align">
 					<label>Title:</label><input data-dojo-type="dijit.form.TextBox" name="title"/>
-					<label>Code:</label><input data-dojo-type="dijit.form.TextBox" name= "_id"/>
+					<label>Code:</label><input data-dojo-type="dijit.form.TextBox" name= "code"/>
 					<label>Categories:</label>
 					<div data-dojo-attach-point="listNode" class="rftLineListView"></div> 
