X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/038583a188bfecdf9cae22d139116b6a57f7a14d..4ddf36452af460dbc26fd181f2ba3640a7c71374:/src/editor/modules/documentCanvas/canvas/canvas.js
diff --git a/src/editor/modules/documentCanvas/canvas/canvas.js b/src/editor/modules/documentCanvas/canvas/canvas.js
index 97ad592..48f03de 100644
--- a/src/editor/modules/documentCanvas/canvas/canvas.js
+++ b/src/editor/modules/documentCanvas/canvas/canvas.js
@@ -13,9 +13,9 @@ define([
var Canvas = function(wlxmlDocument, publisher) {
this.eventBus = _.extend({}, Backbone.Events);
this.wrapper = $('
').addClass('canvas-wrapper').attr('contenteditable', true);
+ this.wlxmlListener = wlxmlListener.create(this);
this.loadWlxmlDocument(wlxmlDocument);
this.publisher = publisher ? publisher : function() {};
- this.wlxmlListener = wlxmlListener.create(this);
};
$.extend(Canvas.prototype, {
@@ -33,6 +33,7 @@ $.extend(Canvas.prototype, {
this.setupEventHandling();
this.wlxmlListener.listenTo(wlxmlDocument);
+ this.wlxmlDocument = wlxmlDocument;
},
generateCanvasDOM: function(wlxmlNode) {
@@ -63,6 +64,11 @@ $.extend(Canvas.prototype, {
}
observer.observe(canvas.d[0], config);
canvas.publisher('contentChanged');
+
+ var textElement = canvas.getDocumentElement(mutation.target),
+ toSet = mutation.target.data !== utils.unicode.ZWS ? mutation.target.data : '';
+
+ textElement.data('wlxmlNode').setText(toSet);
}
});
});
@@ -106,6 +112,11 @@ $.extend(Canvas.prototype, {
return documentElement.DocumentNodeElement.fromHTMLElement(this.d.get(0), this); //{wlxmlTag: this.d.prop('tagName')};
},
+ toggleElementHighlight: function(node, toggle) {
+ var element = utils.findCanvasElement(node);
+ element.toggleHighlight(toggle);
+ },
+
createNodeElement: function(params) {
return documentElement.DocumentNodeElement.create(params, this);
},
@@ -226,6 +237,10 @@ $.extend(Canvas.prototype, {
setCurrentElement: function(element, params) {
+ if(!(element instanceof documentElement.DocumentElement)) {
+ element = utils.findCanvasElement(element);
+ }
+
params = _.extend({caretTo: 'end'}, params);
var findFirstDirectTextChild = function(e, nodeToLand) {
var byBrowser = this.getCursor().getPosition().element;
@@ -264,7 +279,7 @@ $.extend(Canvas.prototype, {
if(params.caretTo || !textElementToLand.sameNode(this.getCursor().getPosition().element))
this._moveCaretToTextElement(textElementToLand, params.caretTo); // as method on element?
if(!(textElementToLand.sameNode(currentTextElement)))
- this.publisher('currentTextElementSet', textElementToLand);
+ this.publisher('currentTextElementSet', textElementToLand.data('wlxmlNode'));
} else {
document.getSelection().removeAllRanges();
}