xml formatting wip: some inline element cases
[fnpeditor.git] / modules / nodePane / nodePane.js
1 define([
2 'libs/text!./template.html',
3 'libs/jquery-1.9.1.min',
4 'libs/underscore-min',
5 'modules/nodePane/metaWidget/metaWidget'
6 ], function(templateSrc, $, _, metaWidget) {
7
8 'use strict';
9
10 return function(sandbox) {
11     
12     var view = $(_.template(templateSrc)());
13     
14     view.on('change', 'select', function(e) {
15         var target = $(e.target);
16         var attr = target.attr('class').split('-')[3] === 'tagSelect' ? 'tag' : 'class';
17         sandbox.publish('nodeElementChange', attr, target.val().replace(/-/g, '.'));
18     });
19     
20     return {
21         start: function() {
22             sandbox.publish('ready');
23         },
24         getView: function() {
25             return view;
26         },
27         setNodeElement: function(nodeElement) {
28             view.find('.rng-module-nodePane-tagSelect').val(nodeElement.getWlxmlTag());
29
30             var escapedClassName = (nodeElement.getWlxmlClass() || '').replace(/\./g, '-')
31             view.find('.rng-module-nodePane-classSelect').val(escapedClassName);
32
33             var widget = metaWidget.create({attrs:nodeElement.getWlxmlMetaAttrs()});
34             widget.on('valueChanged', function(key, value) {
35                 sandbox.publish('nodeElementChange', key, value);
36             });
37             view.find('.metaFields').empty().append(widget.el);
38         }
39     };
40     
41 };
42
43 });