X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/0bea7025f60aa5cc2ed89eed72da0d616f3574ef..2e14f0181735b7acd0da023eb4c9524b75a45b56:/src/editor/modules/documentCanvas/canvas/genericElement.js diff --git a/src/editor/modules/documentCanvas/canvas/genericElement.js b/src/editor/modules/documentCanvas/canvas/genericElement.js index 7d5d986..d11cbd1 100644 --- a/src/editor/modules/documentCanvas/canvas/genericElement.js +++ b/src/editor/modules/documentCanvas/canvas/genericElement.js @@ -2,7 +2,8 @@ define(function(require) { 'use strict'; -var documentElement = require('./documentElement'), +var $ = require('libs/jquery'), + documentElement = require('./documentElement'), utils = require('./utils'), wlxmlUtils = require('utils/wlxml'); @@ -13,8 +14,11 @@ var labelWidget = function(tag, klass) { }; void(labelWidget); // for linters; labelWidget is unused on purpose for now +var DocumentNodeElement = documentElement.DocumentNodeElement; -var generic = { +var generic = Object.create(DocumentNodeElement.prototype); + +$.extend(generic, { onNodeAttrChange: function(event) { if(event.meta.attr === 'class') { this.setWlxmlClass(event.meta.newVal); // @@ -77,7 +81,7 @@ var generic = { } else { element = this.canvas.createElement(param); } - this._container().prepend(element.dom()); + this._container().prepend(element.dom); this.refreshPath(); return element; }, @@ -137,12 +141,26 @@ var generic = { this.refreshPath(); }, init: function() { + DocumentNodeElement.prototype.init.call(this); this._container() .attr('wlxml-tag', this.wlxmlNode.getTagName()); this.setWlxmlClass(this.wlxmlNode.getClass()); this.wlxmlNode.contents().forEach(function(node) { - this._container().append(this.canvas.createElement(node).dom()); + this._container().append(this.canvas.createElement(node).dom); }.bind(this)); + this.refresh(); + + }, + refresh: function() { + if(this.wlxmlNode.getTagName() === 'span') { + if(this.containsBlock()) { + this.displayAsBlock(); + } else { + this.displayInline(); + } + } else { + this.displayAsBlock(); + } }, containsBlock: function() { return this.children() @@ -172,7 +190,7 @@ var generic = { }); return toret; }, -}; +}); return generic;