editor: fallback to original tag/class name in case of lack of defined human friendly...
[fnpeditor.git] / src / editor / modules / documentCanvas / canvas / wlxmlListener.js
index c5deabf..ae1cee1 100644 (file)
@@ -39,8 +39,9 @@ var handlers = {
     nodeTagChange: function(event) {
         var canvasNode = utils.findCanvasElement(event.meta.node);
         canvasNode.setWlxmlTag(event.meta.newTagName);
+        canvasNode.data('wlxmlNode', event.meta.node);
     },
-    nodeAdded: function(event) {
+    nodeAdded: function(event, checkForExistence) {
         if(event.meta.node.isRoot()) {
             this.canvas.reloadRoot();
             return;
@@ -57,23 +58,26 @@ var handlers = {
             referenceAction = 'after';
         }
 
-        actionArg = utils.findCanvasElement(event.meta.node) || event.meta.node;
+        actionArg = (checkForExistence && utils.findCanvasElement(event.meta.node)) || event.meta.node;
         referenceElement[referenceAction](actionArg);
     },
     nodeMoved: function(event) {
-        return handlers.nodeAdded(event);
+        return handlers.nodeAdded(event, true);
     },
     nodeDetached: function(event) {
         var canvasNode = utils.findCanvasElementInParent(event.meta.node, event.meta.parent);
         canvasNode.detach();
     },
     nodeTextChange: function(event) {
+        //console.log('wlxmlListener: ' + event.meta.node.getText());
         var canvasElement = utils.findCanvasElement(event.meta.node),
             toSet = event.meta.node.getText();
         if(toSet === '') {
             toSet = utils.unicode.ZWS;
         }
-        canvasElement.setText(toSet);
+        if(toSet !== canvasElement.getText()) {
+            canvasElement.setText(toSet);
+        }
     }
 };