createElement: function(wlxmlNode) {
var Factory = wlxmlNode.nodeType === Node.TEXT_NODE ? documentElement.DocumentTextElement : documentElement.DocumentNodeElement;
- return Factory.create(wlxmlNode, this);
+ return new Factory(wlxmlNode, this);
},
getDocumentElement: function(htmlElement) {
}
var $element = $(htmlElement);
if(htmlElement.nodeType === Node.ELEMENT_NODE && $element.attr('document-node-element') !== undefined) {
- return new documentElement.DocumentNodeElement(htmlElement, this);
+ return $element.data('canvas-element');
}
+
+ if(htmlElement.nodeType === Node.TEXT_NODE && $element.parent().attr('document-text-element') !== undefined) {
+ $element = $element.parent();
+ }
+
if($element.attr('document-text-element') !== undefined || (htmlElement.nodeType === Node.TEXT_NODE && $element.parent().attr('document-text-element') !== undefined)) {
//return DocumentTextElement.fromHTMLElement(htmlElement, canvas);
- return new documentElement.DocumentTextElement(htmlElement, this);
+ return $element.data('canvas-element');
}
},
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);
-
+ this.rootElement = this.createElement(this.wlxmlDocument.root);
this.wrapper.empty();
- this.wrapper.append(canvasDOM);
- this.d = this.wrapper.children(0);
- },
-
- generateCanvasDOM: function(wlxmlNode) {
- var element = documentElement.DocumentNodeElement.create(wlxmlNode, this);
- return element.dom();
+ this.wrapper.append(this.rootElement.dom());
},
setupEventHandling: function() {
//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);
}
}
});
},
doc: function() {
- if(this.d === null) {
- return null;
- }
- return this.getDocumentElement(this.d[0]);
+ return this.rootElement;
},
toggleElementHighlight: function(node, toggle) {
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();
if(!(currentNodeElement && currentNodeElement.sameNode(nodeElementToLand))) {
_markAsCurrent(nodeElementToLand);
- this.publisher('currentNodeElementSet', nodeElementToLand.data('wlxmlNode'));
+ this.publisher('currentNodeElementSet', nodeElementToLand.wlxmlNode);
}
},