X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/6535ed0c525f70c936a8e25ff38df5157b15c04c..80c653023eaa918f6b736e84d12e17d3c9c24d88:/modules/documentCanvas/canvasNode.js diff --git a/modules/documentCanvas/canvasNode.js b/modules/documentCanvas/canvasNode.js deleted file mode 100644 index 72343a4..0000000 --- a/modules/documentCanvas/canvasNode.js +++ /dev/null @@ -1,135 +0,0 @@ -define([ -'libs/jquery-1.9.1.min', -'libs/underscore-min', -'modules/documentCanvas/classAttributes' -], function($, _, classAttributes) { - -'use strict'; - - - - -var tagSelector = '[wlxml-tag]'; - -var CanvasNode = function(desc) { - if(desc instanceof $) { - this.dom = desc; - if(!this.dom.attr('id')) { - 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);})); - } - } else { - var toBlock = ['div', 'document', 'section', 'header']; - var htmlTag = _.contains(toBlock, desc.tag) ? 'div' : 'span'; - this.dom = $('<' + htmlTag + '>'); - this.dom.attr('wlxml-tag', desc.tag); - if(desc.klass) - this.dom.attr('wlxml-class', desc.klass); - if(desc.content) - this.dom.text(desc.content); - if(desc.meta) { - var c = this; - _.keys(desc.meta) - .filter(function(key) {return classAttributes.hasMetaAttr(c.getClass(), key);}) - .forEach(function(key) { - c.dom.attr('wlxml-meta-'+key, desc.meta[key]); - }); - } - 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);})); - } -}; - -CanvasNode.prototype.getTag = function() { - return this.dom.attr('wlxml-tag'); -}; - -CanvasNode.prototype.getClass = function() { - return this.dom.attr('wlxml-class'); -}; - -CanvasNode.prototype.setClass = function(klass) { - if(klass != this.getClass()) { - var c = this; - this.getMetaAttrs().forEach(function(attr) { - if(!classAttributes.hasMetaAttr(klass, attr.name)) - c.dom.removeAttr('wlxml-meta-' + attr.name); - }); - this.dom.attr('wlxml-class', klass); - } -}; - -CanvasNode.prototype.getId = function() { - return this.dom.attr('id'); -}; - -CanvasNode.prototype.getContent = function() { - return this.dom.text(); -}; - -CanvasNode.prototype.setContent = function(content) { - this.dom.text(content); -}; - -CanvasNode.prototype.isSame = function(other) { - return (other instanceof CanvasNode) && this.dom.get(0) === other.dom.get(0); -}; - -CanvasNode.prototype.children = function() { - var list = []; - this.dom.children(tagSelector).each(function() { - list.push(new CanvasNode($(this))); - }); - return $(list); -}; - - -CanvasNode.prototype.parent = function() { - var node = this.dom.parent(tagSelector); - if(node.length) - return new CanvasNode(node); - return null; -}; - -CanvasNode.prototype.parents = function() { - var list = []; - this.dom.parents(tagSelector).each(function() { - list.push(new CanvasNode($(this))); - }); - return $(list); -}; - - -CanvasNode.prototype.isOfClass = function(klass) { - return this.getClass() && this.getClass().substr(0, klass.length) === klass; -}; - -CanvasNode.prototype.getMetaAttr = function(attr) { - return this.dom.attr('wlxml-meta-'+attr); -}; - -CanvasNode.prototype.getMetaAttrs = function() { - var toret = []; - var metaAttrPrefix = 'wlxml-meta-'; - - var attrList = classAttributes.getMetaAttrsList(this.getClass()); - var c = this; - attrList.all.forEach(function(attr) { - toret.push({name: attr.name, value: c.getMetaAttr(attr.name) || ''}); - }); - - - return toret; -}; - -CanvasNode.prototype.setMetaAttr = function(attr, value) { - this.dom.attr('wlxml-meta-'+attr, value); -}; - -return { - create: function(desc) { - return new CanvasNode(desc); - } - -}; - - -}); \ No newline at end of file