3 'modules/documentCanvas/canvas/utils',
4 ], function($, utils) {
8 var Listener = function(canvas) {
12 $.extend(Listener.prototype, {
13 listenTo: function(wlxmlDocument) {
14 if(wlxmlDocument === this.wlxmlDocument) {
17 this.wlxmlDocument = wlxmlDocument;
19 wlxmlDocument.on('change', function(event) {
20 var handler = handlers[event.type];
22 handler.bind(this)(event);
26 wlxmlDocument.on('contentSet', function() {
27 this.canvas.loadWlxmlDocument(wlxmlDocument);
33 nodeAttrChange: function(event) {
34 if(event.meta.attr === 'class') {
35 var canvasNode = utils.findCanvasElement(event.meta.node);
36 canvasNode.setWlxmlClass(event.meta.newVal);
39 nodeTagChange: function(event) {
40 var canvasNode = utils.findCanvasElement(event.meta.node);
41 canvasNode.setWlxmlTag(event.meta.newTagName);
43 nodeAdded: function(event) {
44 var parentElement = utils.findCanvasElement(event.meta.node.parent()),
45 nodeIndex = event.meta.node.getIndex(),
46 referenceElement, referenceAction;
49 referenceElement = parentElement;
50 referenceAction = 'prepend';
52 referenceElement = parentElement.children()[nodeIndex-1];
53 referenceAction = 'after';
56 referenceElement[referenceAction](event.meta.node);
58 nodeMoved: function(event) {
59 return handlers.nodeAdded(event);
61 nodeDetached: function(event) {
62 var canvasNode = utils.findCanvasElementInParent(event.meta.node, event.meta.parent);
65 nodeTextChange: function(event) {
66 var canvasElement = utils.findCanvasElement(event.meta.node),
67 toSet = event.meta.node.getText();
69 toSet = utils.unicode.ZWS;
71 canvasElement.setText(toSet);
76 create: function(canvas) {
77 return new Listener(canvas);