var canvasNode = utils.findCanvasElement(event.meta.node);
canvasNode.setWlxmlTag(event.meta.newTagName);
},
- nodeAdded: function(event) {
+ nodeAdded: function(event, checkForExistence) {
if(event.meta.node.isRoot()) {
this.canvas.reloadRoot();
return;
}
var parentElement = utils.findCanvasElement(event.meta.node.parent()),
nodeIndex = event.meta.node.getIndex(),
- referenceElement, referenceAction;
+ referenceElement, referenceAction, actionArg;
if(nodeIndex === 0) {
referenceElement = parentElement;
referenceAction = 'after';
}
- referenceElement[referenceAction](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);
+ }
}
};