dbdd951dd3db003c05985aef7cf11ea3732cb2a8
[fnpeditor.git] / src / editor / modules / nodePane / nodePane.js
1 define([
2 'libs/text!./template.html',
3 'libs/jquery',
4 'libs/underscore',
5 'modules/nodePane/metaWidget/metaWidget',
6 'utils/wlxml'
7 ], function(templateSrc, $, _, metaWidget, wlxmlUtils) {
8
9 'use strict';
10
11 return function(sandbox) {
12     
13     var view = $(_.template(templateSrc)({tagNames: wlxmlUtils.wlxmlTagNames, classNames: wlxmlUtils.wlxmlClassNames})),
14         currentNode;
15     
16     view.on('change', 'select', function(e) {
17         var target = $(e.target);
18         var attr = target.attr('class').split('-')[3] === 'tagSelect' ? 'Tag' : 'Class',
19             value = target.val().replace(/-/g, '.');
20                 
21         if(attr === 'Class') {
22             //currentNode.document.transform('setClass', {node: currentNode, klass: value});
23             currentNode.transform('setAttr', {name: 'class', value: value});
24         }
25         //currentNode['set' + attr](value);
26     });
27     
28     return {
29         start: function() {
30             sandbox.publish('ready');
31         },
32         getView: function() {
33             return view;
34         },
35         setNodeElement: function(wlxmlNodeElement) {
36             view.find('.rng-module-nodePane-tagSelect').val(wlxmlNodeElement.getTagName());
37
38             var escapedClassName = (wlxmlNodeElement.getClass() || '').replace(/\./g, '-');
39             view.find('.rng-module-nodePane-classSelect').val(escapedClassName);
40
41             var widget = metaWidget.create({attrs:wlxmlNodeElement.getMetaAttributes()});
42             widget.on('valueChanged', function(key, value) {
43                 wlxmlNodeElement.setMetaAttribute(key, value);
44             });
45             view.find('.metaFields').empty().append(widget.el);
46
47             currentNode = wlxmlNodeElement;
48         }
49     };
50     
51 };
52
53 });