+define(['libs/jquery-1.9.1.min'], function($) {\r
+\r
+'use strict';\r
+\r
+var CanvasNode = function(desc) {\r
+ if(desc instanceof $) {\r
+ this.dom = desc;\r
+ if(!this.dom.attr('id')) {\r
+ this.dom.attr('id', 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);}));\r
+ }\r
+ } else {\r
+ var toBlock = ['div', 'document', 'section', 'header'];\r
+ var htmlTag = _.contains(toBlock, desc.tag) ? 'div' : 'span';\r
+ this.dom = $('<' + htmlTag + '>');\r
+ this.dom.attr('wlxml-tag', desc.tag);\r
+ if(desc.klass)\r
+ this.dom.attr('wlxml-class', desc.klass);\r
+ if(desc.content)\r
+ this.dom.text(desc.content);\r
+ this.dom.attr('id', 'xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {var r = Math.random()*16|0,v=c=='x'?r:r&0x3|0x8;return v.toString(16);}));\r
+ }\r
+};\r
+\r
+CanvasNode.prototype.getTag = function() {\r
+ return this.dom.attr('wlxml-tag');\r
+}\r
+\r
+CanvasNode.prototype.getClass = function() {\r
+ return this.dom.attr('wlxml-class');\r
+}\r
+\r
+CanvasNode.prototype.getId = function() {\r
+ return this.dom.attr('id');\r
+}\r
+\r
+CanvasNode.prototype.getContent = function() {\r
+ return this.dom.text();\r
+}\r
+\r
+CanvasNode.prototype.setContent = function(content) {\r
+ this.dom.text(content);\r
+}\r
+\r
+CanvasNode.prototype.isSame = function(other) {\r
+ return this.dom.get(0).isSameNode(other.dom.get(0));\r
+}\r
+\r
+return {\r
+ create: function(desc) {\r
+ return new CanvasNode(desc);\r
+ }\r
+\r
+}\r
+ \r
+\r
+});
\ No newline at end of file