$.extend(Canvas.prototype, {
loadWlxmlDocument: function(wlxmlDocument) {
+ wlxmlDocument = wlxmlDocument || this.wlxmlDocument;
if(!wlxmlDocument) {
return false;
}
this.wrapper.append(canvasDOM);
this.d = this.wrapper.children(0);
this.setupEventHandling();
- },
- generateCanvasDOM: function(wlxmlNode) {
+ var canvas = this;
- var element = documentElement.DocumentNodeElement.create(wlxmlNode, this);
+ var findCanvasElement = function(node) {
+ if(node.nodeType === Node.ELEMENT_NODE) {
+ return node.getData('canvasElement');
+ }
+ if(node.nodeType === Node.TEXT_NODE) {
+ var parent = node.parent(),
+ toret;
+
+ parent.children().forEach(function(child) {
+ if(child.data('wlxmlNode').sameNode(node))
+ toret = child;
+ });
+ if(toret)
+ return toret;
+ }
+ }
+ if(this.wlxmlDocument !== wlxmlDocument) {
+ wlxmlDocument.on('change', function(event) {
+ var canvasNode = findCanvasElement(event.meta.node);
+ if(event.type === 'nodeAttrChange' && event.meta.attr === 'class') {
+ canvasNode.setWlxmlClass(event.meta.newVal);
+ }
+ });
+ }
+ this.wlxmlDocument = wlxmlDocument;
+ },
+
+ generateCanvasDOM: function(wlxmlNode) {
+ var element = documentElement.DocumentNodeElement.create(wlxmlNode, this);
return element.dom();
},