Index: Dev/branches/rest-dojo-ui/client/rft/pages/questions.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/pages/questions.js	(revision 311)
+++ Dev/branches/rest-dojo-ui/client/rft/pages/questions.js	(revision 316)
@@ -10,8 +10,8 @@
                 this._store = store.getStore('Question');
                 this._list = new AccordionList({
-                    store: this._store,
                     actions: {
                         'Edit': lang.hitch(this,'_editQuestion')
                     },
+                    idProperty: this._store.idProperty,
                     categoryProperty: 'category',
                     titleProperty: 'title'
@@ -21,5 +21,8 @@
             },
             _refresh: function() {
-                this._list.refresh();
+                Deferred.when(this._store.query())
+                .then(lang.hitch(this,function(items){
+                    this._list.setItems(items);
+                }));
             },
             onNewQuestion: function() {
Index: Dev/branches/rest-dojo-ui/client/rft/pages/survey.html
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/pages/survey.html	(revision 311)
+++ Dev/branches/rest-dojo-ui/client/rft/pages/survey.html	(revision 316)
@@ -1,5 +1,5 @@
 <div data-dojo-type="rft.pages.survey">
     <h1 data-rft-attach-point="header">(default)</h1>
-    <div>Created by <span data-rft-attach-point="creator"></span><div>
+    <div>Created by <span data-rft-attach-point="creator"></span></div>
     <form data-dojo-type="dijit.form.Form" data-rft-attach-point="form" data-rft-attach-event="onSubmit:onSave">
         <div style="display: block; clear: both;">
@@ -11,4 +11,8 @@
         <label for="description" class="loginLabel">Description</label>
         <textarea name="description" data-dojo-type="dijit.form.SimpleTextarea" class="loginInput"></textarea>
+        <div>
+            <div style="width: 45%; float: left; clear: left;"><div data-rft-attach-point="allQuestions"></div></div>
+            <div style="width: 45%; float: left;"><div data-rft-attach-point="surveyQuestions"></div></div>
+        </div>
     </form>
 </div>
Index: Dev/branches/rest-dojo-ui/client/rft/pages/survey.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/pages/survey.js	(revision 311)
+++ Dev/branches/rest-dojo-ui/client/rft/pages/survey.js	(revision 316)
@@ -1,13 +1,16 @@
-define(['dojo/_base/declare','dojo/_base/lang','dojo/_base/event','dojo/_base/Deferred','rft/store','rft/ui/_Page','rft/api'],
-    function(declare,lang,event,Deferred,store,_Page,api){
+define(['dojo/_base/declare','dojo/_base/lang','dojo/_base/event',
+    'dojo/_base/Deferred','rft/ui/AccordionList','rft/ui/LineWithActionsWidget',
+    'rft/store','rft/ui/_Page','rft/api'],
+    function(declare,lang,event,Deferred,AccordionList,LineWithActionsWidget,store,_Page,api){
         return declare('rft.pages.survey',[_Page],{
             object: null,
             postCreate: function() {
                 this.inherited(arguments);
-                this._store = store.getStore('Survey');
+                this._surveyStore = store.getStore('Survey');
+                this._questionStore = store.getStore('Question');
             },
             onVisit: function() {
                 if ( this.pageArgs.uid ) {
-                    Deferred.when(this._store.get(this.pageArgs.uid))
+                    Deferred.when(this._surveyStore.get(this.pageArgs.uid))
                     .then(lang.hitch(this,function(obj){
                         this.object = obj;
@@ -17,4 +20,18 @@
                     .then(lang.hitch(this,function(obj){
                         this.creator.innerHTML = (obj && obj.email) || 'unknown';
+                    }));
+                    Deferred.when(this._questionStore.query())
+                    .then(lang.hitch(this,function(items){
+                        this._questionList = new AccordionList({
+                            store: this._surveyStore,
+                            actions: {
+                                'Add': lang.hitch(this,'_addQuestion')
+                            },
+                            idProperty: this._questionStore.idProperty,
+                            categoryProperty: 'category',
+                            titleProperty: 'title'
+                        },this.allQuestions);
+                        this._questionList.startup();
+                        this._questionList.setItems(items);
                     }));
                 } else {
@@ -42,4 +59,18 @@
                 this.header.innerHTML = "Edit survey '"+(obj.title || '(undefined)')+"'";
                 obj && this.form.set('value',obj);
+            },
+            _addQuestion: function(obj) {
+                var d = {};
+                d.widget = new LineWithActionsWidget({
+                    title:obj.title,
+                    userObj: obj,
+                    actions:{
+                        "Remove": lang.hitch(this,'_removeQuestion',d)
+                    }
+                });
+                d.widget.placeAt(this.surveyQuestions);
+            },
+            _removeQuestion: function(data,obj) {
+                data.widget.destroy();
             }
         });
Index: Dev/branches/rest-dojo-ui/client/rft/ui/AccordionList.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/AccordionList.js	(revision 311)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/AccordionList.js	(revision 316)
@@ -9,5 +9,4 @@
         return declare('rft.ui.AccordionList',[_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],{
             templateString: template,
-            store: null,
             idProperty: null,
             categoryProperty: null,
@@ -18,31 +17,33 @@
                 this._widgets = {};
             },
-            postCreate: function() {
-                this.idProperty = this.idProperty || this.store.idProperty;
-                this.refresh(true);
-            },
-            refresh: function(initial) {
-                Deferred.when( this.store.query() )
-                .then(lang.hitch(this,'_addItems',initial));
-            },
-            _addItems: function(initial,items) {
-                var newWidgets = {};
-                array.forEach(this._widgets,domConstruct.destroy); // get everything out of the dom
-                array.forEach(items,lang.hitch(this,function(item){
-                    var widget = this._getWidgetForItem(item);
-                    var id = this._getItemProperty(this.idProperty,item);
-                    var container = this._getContainerForItem(item);
-                    widget.placeAt(container.containerNode);
-                    newWidgets[id] = widget;
-                }));
-                var oldWidgets = array.filter(this.items,function(widget){
-                    return array.indexOf(newWidgets,widget) < 0;
+            setItems: function(items) {
+                var obsoleteWidgets = array.filter(this.widgets,function(item){
+                    return array.indexOf(items,item) < 0;
                 });
-                array.forEach(oldWidgets,function(widget){
+                array.forEach(obsoleteWidgets,function(widget){
                     widget.destroy();
                 });
-                this._widgets = newWidgets; // overwrite, releasing any non-existing items
-                initial && this.accordion.selectChild(true);
+                array.forEach(this._widgets,domConstruct.destroy); // get everything out of the dom
+                array.forEach(items,lang.hitch(this,"_addItem"));
                 this._cleanupEmptyContainers();
+            },
+            addItems: function(items) {
+                array.forEach(items,lang.hitch(this,"_addItem"));
+                this._cleanupEmptyContainers();
+            },
+            addItem: function(item) {
+                this._addItem(item);
+                this._cleanupEmptyContainers();
+            },
+            _addItem: function(item) {
+                var widget = this._getWidgetForItem(item);
+                var container = this._getContainerForItem(item);
+                widget.placeAt(container.containerNode);
+            },
+            removeItem: function(item) {
+                var id = this._getItemProperty(this.idProperty,item);
+                var widget = this._getWidgetForItem(item);
+                widget && widget.destroy();
+                delete this._widgets[id];
             },
             _getWidgetForItem: function(item) {
Index: Dev/branches/rest-dojo-ui/client/rft/ui/LineWithActionsWidget.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/LineWithActionsWidget.js	(revision 311)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/LineWithActionsWidget.js	(revision 316)
@@ -1,11 +1,16 @@
-define(['dojo/_base/declare','dojo/_base/lang','dijit/form/Button',
+define(['dojo/_base/declare','dojo/_base/lang','dojo/on','dojo/dom','dijit/form/Button',
     'dijit/_WidgetBase','dijit/_TemplatedMixin','dijit/_WidgetsInTemplateMixin',
     'dojo/text!./templates/LineWithActionsWidget.html'],
-    function(declare,lang,Button,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,templateString){
+    function(declare,lang,on,dom,Button,_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,templateString){
         return declare('rft.ui.LineWithActionsWidget',[_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin],{
             templateString: templateString,
+            baseClass: 'rftLineWithButtons',
             title: '',
             userObject: null,
             actions: {},
+            postCreate: function() {
+                dom.setSelectable(this.domNode, false);
+                on(this.titleNode,'click',lang.hitch(this,'_onClick'));
+            },
             startup: function() {
                 this.inherited(arguments);
@@ -17,13 +22,23 @@
                     new Button({
                         label: action,
+                        //iconClass: 'dijitIconSearch',
+                        //showLabel: false,
                         onClick: lang.hitch(this,function(){
                             this.actions[action](this.userObject);
                         })
-                    }).placeAt(this.actionBar);
+                    }).placeAt(this.buttonsNode);
                 }
             },
             refresh: function() {
                 this.titleNode.innerHTML = this.title;
-            }
+            },
+            _onClick: function(e){
+                var preventDefault = this.onClick(e) === false;
+                if(preventDefault){
+                    e.preventDefault();
+                }
+                return !preventDefault;
+            },
+            onClick: function(e) {}
         });
     });
Index: Dev/branches/rest-dojo-ui/client/rft/ui/List.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/List.js	(revision 316)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/List.js	(revision 316)
@@ -0,0 +1,20 @@
+define([
+    'dojo/_base/declare',
+    'dijit/_WidgetBase',
+    'dijit/_TemplatedMixin',
+    'dijit/_WidgetsInTemplateMixin',
+    'dijit/_Container',
+    'dojo/text!./templates/List.html'
+    ],function(
+        declare,
+        _WidgetBase,
+        _TemplatedMixin,
+        _WidgetsInTemplateMixin,
+        _Container,
+        templateString
+        ){
+        return declare('rft.ui.List',[_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{
+            templateString: templateString,
+            baseClass: 'rftList'
+        });
+    });
Index: Dev/branches/rest-dojo-ui/client/rft/ui/Selector.js
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/Selector.js	(revision 316)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/Selector.js	(revision 316)
@@ -0,0 +1,84 @@
+define([
+    'dojo/_base/declare',
+    'dojo/_base/lang',
+    'dojo/fx',
+    'dijit/_WidgetBase',
+    'dijit/_TemplatedMixin',
+    'dijit/_WidgetsInTemplateMixin',
+    'dijit/_Container',
+    './LineWithActionsWidget',
+    'dojo/text!./templates/Selector.html'
+    ],function(
+        declare,
+        lang,
+        fx,
+        _WidgetBase,
+        _TemplatedMixin,
+        _WidgetsInTemplateMixin,
+        _Container,
+        LineWithActionsWidget,
+        templateString
+        ){
+        return declare('rft.ui.Selector',[_WidgetBase,_TemplatedMixin,_WidgetsInTemplateMixin,_Container],{
+            templateString: templateString,
+            title: "The professional as a participant",
+            baseClass: 'rftSelector',
+            postCreate: function() {
+                var infoFunction = function() {
+                    alert("Show info here");
+                }
+                new LineWithActionsWidget({
+                    title: this.title,
+                    actions: {
+                        "Select" : function(){}
+                    }
+                },this.titleNode);
+                new LineWithActionsWidget({
+                    title: 'None',
+                    actions: {
+                        "V" : lang.hitch(this,function(){
+                            var node = this.optionsNode;
+                            var show = fx.wipeIn({
+                                node: node
+                            });
+                            var hide = fx.wipeOut({
+                                node: node
+                            });
+                            hide.play();
+                            var folded = true;
+                            return function(e) {
+                                if ( folded ) {
+                                    show.play();
+                                    folded = false;
+                                } else {
+                                    hide.play();
+                                    folded = true;
+                            
+                                }
+                                e.preventDefault();
+                                e.stopPropagation();
+                            };
+                        })()
+                    }
+                },this.selectedItemNode);
+                new LineWithActionsWidget({
+                    title: 'Are there direct colleagues among the other participants?',
+                    actions: {
+                        "i" : infoFunction
+                    }
+                }).placeAt(this.optionsNode);
+                new LineWithActionsWidget({
+                    title: 'Do you personally know ithers present at the current session?',
+                    actions: {
+                        "i" : infoFunction
+                    }
+                }).placeAt(this.optionsNode);
+                new LineWithActionsWidget({
+                    title: 'Have you worked with other participants before?',
+                    actions: {
+                        "i" : infoFunction
+                    }
+                }).placeAt(this.optionsNode);
+            }
+        });
+    });
Index: Dev/branches/rest-dojo-ui/client/rft/ui/templates/LineWithActionsWidget.html
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/templates/LineWithActionsWidget.html	(revision 311)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/templates/LineWithActionsWidget.html	(revision 316)
@@ -1,4 +1,4 @@
-<div>
-    <span data-dojo-attach-point="actionBar"></span>
-    <span data-dojo-attach-point="titleNode"></span>
+<div class="${baseClass}">
+    <span class="${baseClass}Title" data-dojo-attach-point="titleNode"></span>
+    <span class="${baseClass}Buttons" data-dojo-attach-point="buttonsNode"></span>
 </div>
Index: Dev/branches/rest-dojo-ui/client/rft/ui/templates/List.html
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/templates/List.html	(revision 316)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/templates/List.html	(revision 316)
@@ -0,0 +1,8 @@
+<div>
+    <div data-dojo-attach-point="containerNode"></div>
+    <div>
+        <span>Move selected</span>
+        <button data-dojo-type="dijit.form.Button">Up</button>
+        <button data-dojo-type="dijit.form.Button">Down</button>
+    </div>
+</div>
Index: Dev/branches/rest-dojo-ui/client/rft/ui/templates/Selector.html
===================================================================
--- Dev/branches/rest-dojo-ui/client/rft/ui/templates/Selector.html	(revision 316)
+++ Dev/branches/rest-dojo-ui/client/rft/ui/templates/Selector.html	(revision 316)
@@ -0,0 +1,8 @@
+<div>
+    <div class="${baseClass}Title" data-dojo-attach-point="titleNode"></div>
+    <div class="${baseClass}Selected">
+        <div class="${baseClass}Color" data-dojo-attach-point="selectedColorNode"></div>
+        <div class="${baseClass}Item" data-dojo-attach-point="selectedItemNode"></div>
+    </div>
+    <div class="${baseClass}Options" data-dojo-attach-point="optionsNode"></div>
+</div>
