1 define(function(require) {
5 var $ = require('libs/jquery'),
6 _ = require('libs/underscore'),
7 elementBase = require('plugins/core/edumed/elementBase'),
8 template = require('libs/text!./element.html');
11 var choiceBase = Object.create(elementBase);
12 _.extend(choiceBase, {
14 elementBase.init.call(this);
15 this.view = $(_.template(template)({type: this.type, name: this.name}));
16 this._container().append(this.view);
18 this.createContainer(this.wlxmlNode.contents().filter(function(n) {return !n.is('list');}), {
19 resetBackground: true,
20 manages: function(node, removedFrom) {
21 if(node.is('list.orderable')) {
24 return this.wlxmlNode.sameNode(node.parent() || removedFrom);
26 dom: this.view.find('.description')
29 this.wlxmlNode.contents()
30 .filter(function(node) { return node.is('list'); })
31 .some(function(node) {
32 this.listView = this.createListView(node);
33 this.view.find('.list').append(this.listView.dom);
36 getVerticallyFirstTextElement: function() {
38 this.containers.some(function(container) {
39 toret = container.getVerticallyFirstTextElement();
44 onNodeAdded: function(event) {
45 var node = event.meta.node;
46 if(this.listView.listNode.sameNode(node.parent()) && node.is('item.answer')) {
47 this.listView.addItem(node);
50 onNodeDetached: function(event) {
51 var node = event.meta.node;
52 if(this.listView.listNode.sameNode(event.meta.parent) && node.is('item.answer')) {
53 this.listView.removeItem(node);