X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/5d2695bd243591aa1697733184d07cdb3e67cf74..567b5d347d2df4f0aea88996a78cb4b457802126:/src/editor/modules/documentCanvas/canvas/documentElement.js diff --git a/src/editor/modules/documentCanvas/canvas/documentElement.js b/src/editor/modules/documentCanvas/canvas/documentElement.js index 859a80b..d6d60d3 100644 --- a/src/editor/modules/documentCanvas/canvas/documentElement.js +++ b/src/editor/modules/documentCanvas/canvas/documentElement.js @@ -43,6 +43,7 @@ $.extend(DocumentElement.prototype, { this.state[key] = changes[key] = toUpdate[key]; } }.bind(this)); + // console.log(changes); if(_.isFunction(this.onStateChange)) { this.onStateChange(changes); if(_.isBoolean(changes.active)) { @@ -95,6 +96,8 @@ $.extend(DocumentElement.prototype, { var DocumentNodeElement = function(wlxmlNode, canvas) { DocumentElement.call(this, wlxmlNode, canvas); this.containers = []; + this.elementsRegister = canvas.createElementsRegister(); + this.contextMenuActions = []; this.init(this.dom); }; @@ -104,7 +107,7 @@ var manipulate = function(e, params, action) { if(params instanceof DocumentElement) { element = params; } else { - element = e.canvas.createElement(params); + element = e.createElement(params); } if(element.dom) { e.dom[action](element.dom); @@ -146,6 +149,13 @@ $.extend(DocumentNodeElement.prototype, { this.containers.splice(idx, 1); } }, + createElement: function(wlxmlNode) { + var parent = this.wlxmlNode.parent() ? utils.getElementForNode(this.wlxmlNode.parent()) : null; + return this.canvas.createElement(wlxmlNode, this.elementsRegister, !parent) || parent.createElement(wlxmlNode); + }, + addToContextMenu: function(actionFqName) { + this.contextMenuActions.push(this.canvas.createAction(actionFqName)); + }, handle: function(event) { var method = 'on' + event.type[0].toUpperCase() + event.type.substr(1), target; @@ -232,6 +242,9 @@ $.extend(DocumentNodeElement.prototype, { // }) this.dom.css('display', what); this._container().css('display', what); + }, + children: function() { + return []; } }); @@ -266,7 +279,7 @@ $.extend(DocumentTextElement.prototype, { if(text === '') { text = utils.unicode.ZWS; } - if(text !== this.getText()) { + if(text !== this.dom.contents()[0].data) { this.dom.contents()[0].data = text; } }, @@ -293,7 +306,7 @@ $.extend(DocumentTextElement.prototype, { if(params instanceof DocumentNodeElement) { element = params; } else { - element = this.canvas.createElement(params); + element = this.parent().createElement(params); } if(element.dom) { this.dom.wrap('
'); @@ -311,7 +324,7 @@ $.extend(DocumentTextElement.prototype, { if(params instanceof DocumentNodeElement) { element = params; } else { - element = this.canvas.createElement(params); + element = this.createElement(params); } if(element.dom) { this.dom.wrap('
');