X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/d1363cb9ab794cf33c7d30cf15830857c8a9636c..25436cdfcd36e309bfdf99f858b66d15e3af3864:/modules/documentCanvas/canvas/documentElement.js?ds=inline diff --git a/modules/documentCanvas/canvas/documentElement.js b/modules/documentCanvas/canvas/documentElement.js index 3601732..2b42a22 100644 --- a/modules/documentCanvas/canvas/documentElement.js +++ b/modules/documentCanvas/canvas/documentElement.js @@ -2,8 +2,9 @@ define([ 'libs/jquery-1.9.1.min', 'libs/underscore-min', 'modules/documentCanvas/classAttributes', -'modules/documentCanvas/canvas/utils' -], function($, _, classAttributes, utils) { +'modules/documentCanvas/canvas/utils', +'modules/documentCanvas/canvas/widgets' +], function($, _, classAttributes, utils, widgets) { 'use strict'; @@ -122,33 +123,30 @@ var getDisplayStyle = function(tag, klass) { $.extend(DocumentNodeElement, { createDOM: function(params) { - var dom = $('
'), - container = $('
'); + var dom = $('
') + .attr('document-node-element', ''), + widgetsContainer = $('
') + .addClass('canvas-widgets') + .attr('contenteditable', false), + container = $('
') + .attr('document-element-content', ''); - container.attr('wlxml-tag', params.tag); + dom.append(widgetsContainer, container); + // Make sure widgets aren't navigable with arrow keys + widgetsContainer.find('*').add(widgetsContainer).attr('tabindex', -1); + + var element = this.fromHTMLElement(dom[0]); + + element.setWlxmlTag(params.tag); if(params.klass) - container.attr('wlxml-class', params.klass.replace(/\./g, '-')); + element.setWlxmlClass(params.klass); if(params.meta) { _.keys(params.meta).forEach(function(key) { - dom.attr('wlxml-meta-'+key, params.meta[key]); + element.setWlxmlMetaAttr(key, params.meta[key]); }); } - dom.data('other-attrs', params.others); - - /* display style */ - var displayStyle = getDisplayStyle(params.tag, params.klass); - dom.css('display', displayStyle); - container.css('display', displayStyle); - - var widgets = $('
'); - widgets.append($('').text(params.tag + (params.klass ? ' / ' + params.klass : ''))); - dom.append(widgets); - - // Make sure widgets aren't navigable with arrow keys - widgets.find('*').add(widgets).attr('tabindex', -1); - - dom.append(container); - + element.data('other-attrs', params.others); + widgetsContainer.append(widgets.labelWidget(params.tag, params.klass)); if(params.rawChildren) { container.append(params.rawChildren); } @@ -329,7 +327,7 @@ $.extend(DocumentNodeElement.prototype, { this._updateDisplayStyle(); }, _updateDisplayStyle: function() { - var displayStyle = getDisplayStyle(this.getWlxmlTag, this.getWlxmlClass); + var displayStyle = getDisplayStyle(this.getWlxmlTag(), this.getWlxmlClass()); this.dom().css('display', displayStyle); this._container().css('display', displayStyle); }, @@ -364,7 +362,7 @@ $.extend(DocumentNodeElement.prototype, { }, toggleHighlight: function(toogle) { - this.dom().toggleClass('highlighted-element'); + this._container().toggleClass('highlighted-element'); } });