X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/c54224aa06f2a7defa140494563d98167e0ea8ae..8358d608397b9531d9d0b72c7b21ab78d078f066:/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 663b8a6..937d580 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.js @@ -2,15 +2,17 @@ define([ 'libs/jquery', 'libs/underscore', 'libs/backbone', +'fnpjs/logging/logging', 'modules/documentCanvas/canvas/documentElement', 'modules/documentCanvas/canvas/keyboard', 'modules/documentCanvas/canvas/utils', 'modules/documentCanvas/canvas/wlxmlListener' -], function($, _, Backbone, documentElement, keyboard, utils, wlxmlListener) { +], function($, _, Backbone, logging, documentElement, keyboard, utils, wlxmlListener) { 'use strict'; /* global document:false, window:false, Node:false */ +var logger = logging.getLogger('canvas'); var TextHandler = function(canvas) {this.canvas = canvas; this.buffer = null;}; $.extend(TextHandler.prototype, { @@ -69,6 +71,11 @@ $.extend(Canvas.prototype, { this.reloadRoot(); }, + createElement: function(wlxmlNode) { + var Factory = wlxmlNode.nodeType === Node.TEXT_NODE ? documentElement.DocumentTextElement : documentElement.DocumentNodeElement; + return Factory.create(wlxmlNode, this); + }, + reloadRoot: function() { var canvasDOM = this.generateCanvasDOM(this.wlxmlDocument.root); //var canvasDOM = this.wlxmlDocument.root.getData('canvasElement') ? this.wlxmlDocument.root.getData('canvasElement').dom() : this.generateCanvasDOM(this.wlxmlDocument.root); @@ -205,10 +212,6 @@ $.extend(Canvas.prototype, { element.toggleHighlight(toggle); }, - createNodeElement: function(params) { - return documentElement.DocumentNodeElement.create(params, this); - }, - getDocumentElement: function(from) { /* globals HTMLElement, Text */ if(from instanceof HTMLElement || from instanceof Text) { @@ -228,13 +231,20 @@ $.extend(Canvas.prototype, { return this.getDocumentElement(this.wrapper.find('.current-text-element')[0]); }, - + contains: function(element) { + return element.dom().parents().index(this.wrapper) !== -1; + }, setCurrentElement: function(element, params) { if(!(element instanceof documentElement.DocumentElement)) { element = utils.findCanvasElement(element); } + if(!element || !this.contains(element)) { + logger.warning('Cannot set current element: element doesn\'t exist on canvas'); + return; + } + params = _.extend({caretTo: 'end'}, params); var findFirstDirectTextChild = function(e, nodeToLand) { var byBrowser = this.getCursor().getPosition().element;