From: Aleksander Ɓukasz Date: Fri, 28 Mar 2014 11:54:37 +0000 (+0100) Subject: refactoring: stop using data api on document element to keep reference to wlxmlNode X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/22a990585c518e18de8fd2b023145d6ac305a6fa?ds=sidebyside;hp=abd8692003a505de041558bd43f0ce1e884e8bbd refactoring: stop using data api on document element to keep reference to wlxmlNode --- diff --git a/src/editor/modules/documentCanvas/canvas/canvas.js b/src/editor/modules/documentCanvas/canvas/canvas.js index f29f99f..476a95b 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.js @@ -177,8 +177,8 @@ $.extend(Canvas.prototype, { //textElement.data('wlxmlNode').setText(toSet); //textElement.data('wlxmlNode').document.transform('setText', {node: textElement.data('wlxmlNode'), text: toSet}); - if(textElement.data('wlxmlNode').getText() !== toSet) { - canvas.textHandler.handle(textElement.data('wlxmlNode'), toSet); + if(textElement.wlxmlNode.getText() !== toSet) { + canvas.textHandler.handle(textElement.wlxmlNode, toSet); } } }); @@ -307,7 +307,7 @@ $.extend(Canvas.prototype, { this._moveCaretToTextElement(textElementToLand, params.caretTo); // as method on element? } if(!(textElementToLand.sameNode(currentTextElement))) { - this.publisher('currentTextElementSet', textElementToLand.data('wlxmlNode')); + this.publisher('currentTextElementSet', textElementToLand.wlxmlNode); } } else { document.getSelection().removeAllRanges(); @@ -316,7 +316,7 @@ $.extend(Canvas.prototype, { if(!(currentNodeElement && currentNodeElement.sameNode(nodeElementToLand))) { _markAsCurrent(nodeElementToLand); - this.publisher('currentNodeElementSet', nodeElementToLand.data('wlxmlNode')); + this.publisher('currentNodeElementSet', nodeElementToLand.wlxmlNode); } }, diff --git a/src/editor/modules/documentCanvas/canvas/canvas.test.js b/src/editor/modules/documentCanvas/canvas/canvas.test.js index 902cb34..346a82b 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.test.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.test.js @@ -33,7 +33,7 @@ describe('new Canvas', function() { expect(c.doc().children()).to.have.length(3); expect(c.doc().children()[0].canvas).to.equal(c); - expect(c.doc().children()[0].data('wlxmlNode').sameNode(doc.root)); + expect(c.doc().children()[0].wlxmlNode.sameNode(doc.root)); }); }); @@ -58,7 +58,7 @@ describe('Handling changes to the document', function() { c = canvas.fromXMLDocument(doc); var header = doc.root.replaceWith({tagName: 'header'}); - expect(c.doc().data('wlxmlNode').sameNode(header)).to.equal(true); + expect(c.doc().wlxmlNode.sameNode(header)).to.equal(true); }); }); @@ -104,7 +104,7 @@ describe('Listening to document changes', function() { /* Make sure we handle invalidation of reference to wlxmlNode after changing its tag */ expect(headerNode.getData('canvasElement').sameNode(headerElement)).to.equal(true, 'node->element'); - expect(headerElement.data('wlxmlNode').sameNode(headerNode)).to.equal(true, 'element->node'); + expect(headerElement.wlxmlNode.sameNode(headerNode)).to.equal(true, 'element->node'); }); it('Handles nodeDetached event for an empty text node', function(done) { @@ -120,7 +120,7 @@ describe('Listening to document changes', function() { wait(function() { var parent = aTextElement.parent(); expect(aTextElement.getText({raw:true})).to.equal(utils.unicode.ZWS, 'canvas represents this as empty node'); - aTextElement.data('wlxmlNode').detach(); + aTextElement.wlxmlNode.detach(); expect(parent.children().length).to.equal(1); expect(parent.children()[0].getWlxmlTag()).to.equal('span'); done(); diff --git a/src/editor/modules/documentCanvas/canvas/documentElement.js b/src/editor/modules/documentCanvas/canvas/documentElement.js index 2c146bb..5ed3d20 100644 --- a/src/editor/modules/documentCanvas/canvas/documentElement.js +++ b/src/editor/modules/documentCanvas/canvas/documentElement.js @@ -19,7 +19,6 @@ var DocumentElement = function(wlxmlNode, canvas) { this.$element = this.createDOM(); this.$element.data('canvas-element', this); - this.data('wlxmlNode', wlxmlNode); }; $.extend(DocumentElement.prototype, { diff --git a/src/editor/modules/documentCanvas/canvas/keyboard.js b/src/editor/modules/documentCanvas/canvas/keyboard.js index 85fbd43..f879851 100644 --- a/src/editor/modules/documentCanvas/canvas/keyboard.js +++ b/src/editor/modules/documentCanvas/canvas/keyboard.js @@ -51,7 +51,7 @@ handlers.push({key: KEYS.ENTER, var currentElement = canvas.getCurrentNodeElement(); if(currentElement) { canvas.wlxmlDocument.startTransaction(); - added = currentElement.data('wlxmlNode').after({ + added = currentElement.wlxmlNode.after({ tagName: currentElement.getWlxmlTag() || 'div', attrs: {'class': currentElement.getWlxmlClass() || 'p'} }); @@ -69,7 +69,7 @@ handlers.push({key: KEYS.ENTER, } canvas.wlxmlDocument.startTransaction(); - added = element.data('wlxmlNode').after( + added = element.wlxmlNode.after( {tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}} ); added.append({text: ''}); @@ -101,7 +101,7 @@ handlers.push({key: KEYS.ENTER, // gotoOptions = {caretTo: 'start'}; // } - var result = position.element.data('wlxmlNode').breakContent({offset: position.offset}), + var result = position.element.wlxmlNode.breakContent({offset: position.offset}), goto, gotoOptions; if(result.emptyText) { goto = result.emptyText; @@ -183,7 +183,7 @@ handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE], var cursor = canvas.getCursor(), position = canvas.getCursor().getPosition(), element = position.element, - node = element.data('wlxmlNode'), + node = element.wlxmlNode, direction = 'above', caretTo = 'end', goto; @@ -219,11 +219,11 @@ handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE], canvas.wlxmlDocument.deleteText({ from: { - node: start.element.data('wlxmlNode'), + node: start.element.wlxmlNode, offset: start.offset }, to: { - node: end.element.data('wlxmlNode'), + node: end.element.wlxmlNode, offset: end.offset } }); @@ -256,14 +256,14 @@ handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE], } if(parent.children().length === 1 && parent.children()[0].sameNode(element)) { if(grandParent && grandParent.children().length === 1) { - goto = grandParent.data('wlxmlNode').append({text: ''}); + goto = grandParent.wlxmlNode.append({text: ''}); } else { goto = element.getNearestTextElement(direction); } - parent.data('wlxmlNode').detach(); + parent.wlxmlNode.detach(); } else { goto = element.getNearestTextElement(direction); - element.data('wlxmlNode').detach(); + element.wlxmlNode.detach(); } canvas.setCurrentElement(goto, {caretTo: caretTo}); } @@ -272,7 +272,7 @@ handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE], element = element.getNearestTextElement(direction); } if(element) { - goto = element.data('wlxmlNode').mergeContentUp(); + goto = element.wlxmlNode.mergeContentUp(); canvas.setCurrentElement(goto.node, {caretTo: goto.offset}); } event.preventDefault(); diff --git a/src/editor/modules/documentCanvas/canvas/utils.js b/src/editor/modules/documentCanvas/canvas/utils.js index 337f4d3..56093f6 100644 --- a/src/editor/modules/documentCanvas/canvas/utils.js +++ b/src/editor/modules/documentCanvas/canvas/utils.js @@ -45,7 +45,7 @@ var findCanvasElementInParent = function(wlxmlChildNode, wlxmlParentNode) { } else { parentElement = findCanvasElement(wlxmlParentNode); parentElement.children().forEach(function(child) { - if(child.data('wlxmlNode').sameNode(wlxmlChildNode)) { // czemu tu, przy drugim undo child nie mial data? + if(child.wlxmlNode.sameNode(wlxmlChildNode)) { // czemu tu, przy drugim undo child nie mial data? toret = child; } }); diff --git a/src/editor/modules/documentCanvas/canvas/wlxmlListener.js b/src/editor/modules/documentCanvas/canvas/wlxmlListener.js index 0ae8885..cbf8d08 100644 --- a/src/editor/modules/documentCanvas/canvas/wlxmlListener.js +++ b/src/editor/modules/documentCanvas/canvas/wlxmlListener.js @@ -45,7 +45,7 @@ var handlers = { nodeTagChange: function(event) { var canvasNode = utils.findCanvasElement(event.meta.node); canvasNode.setWlxmlTag(event.meta.newTagName); - canvasNode.data('wlxmlNode', event.meta.node); + canvasNode.wlxmlNode = event.meta.node; }, nodeAdded: function(event, checkForExistence) { if(event.meta.node.isRoot()) { diff --git a/src/editor/modules/documentCanvas/commands.js b/src/editor/modules/documentCanvas/commands.js index 55de02c..6335e0a 100644 --- a/src/editor/modules/documentCanvas/commands.js +++ b/src/editor/modules/documentCanvas/commands.js @@ -34,7 +34,7 @@ commands.register('redo', function(canvas) { }); commands.register('remove-node', function(canvas) { - canvas.getCurrentNodeElement().data('wlxmlNode').detach(); + canvas.getCurrentNodeElement().wlxmlNode.detach(); }); commands.register('unwrap-node', function(canvas) { @@ -45,14 +45,14 @@ commands.register('unwrap-node', function(canvas) { parent2 = selectionEnd.element.parent() || undefined; var selectionAnchor = cursor.getSelectionAnchor(), - node1 = parent1.data('wlxmlNode'), - node2 = parent2.data('wlxmlNode'), + node1 = parent1.wlxmlNode, + node2 = parent2.wlxmlNode, doc = node1.document; if(doc.areItemsOfSameList({node1: node1, node2: node2})) { doc.extractItems({item1: node1, item2: node2}); canvas.setCurrentElement(selectionAnchor.element, {caretTo: selectionAnchor.offset}); } else if(!cursor.isSelecting()) { - var nodeToUnwrap = cursor.getPosition().element.data('wlxmlNode'), + var nodeToUnwrap = cursor.getPosition().element.wlxmlNode, parentNode = nodeToUnwrap.unwrap(); if(parentNode) { canvas.setCurrentElement(utils.findCanvasElement(parentNode)); @@ -67,8 +67,8 @@ commands.register('wrap-node', function(canvas) { parent1 = selectionStart.element.parent() || undefined, parent2 = selectionEnd.element.parent() || undefined; - var node1 = parent1.data('wlxmlNode'), - node2 = parent2.data('wlxmlNode'), + var node1 = parent1.wlxmlNode, + node2 = parent2.wlxmlNode, doc = node1.document; if(doc.areItemsOfSameList({node1: node1, node2: node2})) { @@ -90,8 +90,8 @@ commands.register('list', function(canvas, params) { return; } - var node1 = parent1.data('wlxmlNode'), - node2 = parent2.data('wlxmlNode'), + var node1 = parent1.wlxmlNode, + node2 = parent2.wlxmlNode, doc = node1.document; doc.createList({node1: node1, node2: node2}); @@ -165,7 +165,7 @@ commands.register('newNodeRequested', function(canvas, params, user) { if(cursor.isSelecting()) { if(cursor.isSelectingSiblings()) { if(cursor.isSelectingWithinElement()) { - wlxmlNode = selectionStart.element.data('wlxmlNode'); + wlxmlNode = selectionStart.element.wlxmlNode; caretTo = selectionStart.offset < selectionEnd.offset ? 'start' : 'end'; insertNode( @@ -179,7 +179,7 @@ commands.register('newNodeRequested', function(canvas, params, user) { ); } else { - wlxmlNode = selectionStart.element.data('wlxmlNode').parent(); + wlxmlNode = selectionStart.element.wlxmlNode.parent(); caretTo = selectionStart.element.sameNode(cursor.getSelectionAnchor().element) ? 'end' : 'start'; insertNode( @@ -188,7 +188,7 @@ commands.register('newNodeRequested', function(canvas, params, user) { _with: {tagName: params.wlxmlTag, attrs: {'class': params.wlxmlClass}}, offsetStart: selectionStart.offset, offsetEnd: selectionEnd.offset, - textNodeIdx: [wlxmlNode.indexOf(selectionStart.element.data('wlxmlNode')), wlxmlNode.indexOf(selectionEnd.element.data('wlxmlNode'))] //parent.childIndex(selectionEnd.element)] + textNodeIdx: [wlxmlNode.indexOf(selectionStart.element.wlxmlNode), wlxmlNode.indexOf(selectionEnd.element.wlxmlNode)] //parent.childIndex(selectionEnd.element)] }); }, function(wrapper) { @@ -198,8 +198,8 @@ commands.register('newNodeRequested', function(canvas, params, user) { ); } } else { - var node1 = selectionStart.element.data('wlxmlNode'), - node2 = selectionEnd.element.data('wlxmlNode'), + var node1 = selectionStart.element.wlxmlNode, + node2 = selectionEnd.element.wlxmlNode, siblingParents = canvas.wlxmlDocument.getSiblingParents({node1: node1, node2: node2}); if(siblingParents) { @@ -215,7 +215,7 @@ commands.register('newNodeRequested', function(canvas, params, user) { } } } else if(canvas.getCurrentNodeElement()) { - wlxmlNode = canvas.getCurrentNodeElement().data('wlxmlNode'); + wlxmlNode = canvas.getCurrentNodeElement().wlxmlNode; var linkFound = [wlxmlNode].concat(wlxmlNode.parents()).some(function(node) { if(node.getClass() === 'link') { @@ -272,9 +272,9 @@ commands.register('footnote', function(canvas, params) { if(cursor.isSelectingWithinElement()) { - asideNode = position.element.data('wlxmlNode').wrapWith({tagName: 'aside', attrs:{'class': 'footnote'}, start: cursor.getSelectionStart().offset, end: cursor.getSelectionEnd().offset}); + asideNode = position.element.wlxmlNode.wrapWith({tagName: 'aside', attrs:{'class': 'footnote'}, start: cursor.getSelectionStart().offset, end: cursor.getSelectionEnd().offset}); } else { - node = position.element.data('wlxmlNode'); + node = position.element.wlxmlNode; node.document.transaction(function() { asideNode = node.divideWithElementNode({tagName: 'aside', attrs:{'class': 'footnote'}}, {offset: position.offset}); asideNode.append({text: ''}); @@ -295,7 +295,7 @@ commands.register('take-away-node', function(canvas) { return; } - var range = nodeElement.data('wlxmlNode').unwrapContent(); + var range = nodeElement.wlxmlNode.unwrapContent(); if(element) { var elementIsFirstChild = nodeElement.childIndex(element);