Removing unnecessary element detach logic from Canvas DocumentNodeElement
[fnpeditor.git] / src / editor / modules / nodePane / nodePane.js
index 7473c2e..1ecafe1 100644 (file)
@@ -18,9 +18,13 @@ return function(sandbox) {
         var attr = target.attr('class').split('-')[3] === 'tagSelect' ? 'Tag' : 'Class',
             value = target.val().replace(/-/g, '.');
                 
         var attr = target.attr('class').split('-')[3] === 'tagSelect' ? 'Tag' : 'Class',
             value = target.val().replace(/-/g, '.');
                 
-        currentNode['set' + attr](value);
+        if(attr === 'Class') {
+            //currentNode.document.transform('setClass', {node: currentNode, klass: value});
+            currentNode.transform('smartxml.setAttr', {name: 'class', value: value});
+        }
+        //currentNode['set' + attr](value);
     });
     });
-    
+   
     return {
         start: function() {
             sandbox.publish('ready');
     return {
         start: function() {
             sandbox.publish('ready');
@@ -29,6 +33,15 @@ return function(sandbox) {
             return view;
         },
         setNodeElement: function(wlxmlNodeElement) {
             return view;
         },
         setNodeElement: function(wlxmlNodeElement) {
+            var module = this;
+            if(!currentNode) {
+                wlxmlNodeElement.document.on('change', function(event) {
+                    if(event.type === 'nodeAttrChange' && event.meta.node.sameNode(currentNode)) {
+                        module.setNodeElement(currentNode);
+                    }
+                });
+            }
+
             view.find('.rng-module-nodePane-tagSelect').val(wlxmlNodeElement.getTagName());
 
             var escapedClassName = (wlxmlNodeElement.getClass() || '').replace(/\./g, '-');
             view.find('.rng-module-nodePane-tagSelect').val(wlxmlNodeElement.getTagName());
 
             var escapedClassName = (wlxmlNodeElement.getClass() || '').replace(/\./g, '-');
@@ -36,7 +49,8 @@ return function(sandbox) {
 
             var widget = metaWidget.create({attrs:wlxmlNodeElement.getMetaAttributes()});
             widget.on('valueChanged', function(key, value) {
 
             var widget = metaWidget.create({attrs:wlxmlNodeElement.getMetaAttributes()});
             widget.on('valueChanged', function(key, value) {
-                wlxmlNodeElement.setMetaAttribute(key, value);
+                wlxmlNodeElement.transform('wlxml.setMetaAttribute', {name: key, value: value});
+                //wlxmlNodeElement.setMetaAttribute(key, value);
             });
             view.find('.metaFields').empty().append(widget.el);
 
             });
             view.find('.metaFields').empty().append(widget.el);