fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Allowing for canvas to listen to dom key events
[fnpeditor.git]
/
modules
/
documentCanvas
/
canvas
/
documentElement.js
diff --git
a/modules/documentCanvas/canvas/documentElement.js
b/modules/documentCanvas/canvas/documentElement.js
index
6d76bf4
..
f6137ef
100644
(file)
--- a/
modules/documentCanvas/canvas/documentElement.js
+++ b/
modules/documentCanvas/canvas/documentElement.js
@@
-11,7
+11,7
@@
var DocumentElement = function(htmlElement, canvas) {
if(arguments.length === 0)
return;
this.canvas = canvas;
if(arguments.length === 0)
return;
this.canvas = canvas;
- this.
$element = $
(htmlElement);
+ this.
_setupDOMHandler
(htmlElement);
}
var elementTypeFromParams = function(params) {
}
var elementTypeFromParams = function(params) {
@@
-29,14
+29,19
@@
$.extend(DocumentElement, {
},
fromHTMLElement: function(htmlElement, canvas) {
},
fromHTMLElement: function(htmlElement, canvas) {
- if(htmlElement.nodeType === Node.ELEMENT_NODE)
+ var $element = $(htmlElement);
+ if(htmlElement.nodeType === Node.ELEMENT_NODE && $element.attr('wlxml-tag'))
return DocumentNodeElement.fromHTMLElement(htmlElement, canvas);
return DocumentNodeElement.fromHTMLElement(htmlElement, canvas);
- if(
htmlElement.nodeType === Node.TEXT_NODE
)
+ if(
$element.attr('wlxml-text') !== undefined || (htmlElement.nodeType === Node.TEXT_NODE && $element.parent().attr('wlxml-text') !== undefined)
)
return DocumentTextElement.fromHTMLElement(htmlElement, canvas);
return DocumentTextElement.fromHTMLElement(htmlElement, canvas);
+ return undefined;
}
});
$.extend(DocumentElement.prototype, {
}
});
$.extend(DocumentElement.prototype, {
+ _setupDOMHandler: function(htmlElement) {
+ this.$element = $(htmlElement);
+ },
dom: function() {
return this.$element;
},
dom: function() {
return this.$element;
},
@@
-72,9
+77,10
@@
var DocumentNodeElement = function(htmlElement, canvas) {
$.extend(DocumentNodeElement, {
createDOM: function(params) {
$.extend(DocumentNodeElement, {
createDOM: function(params) {
- var dom = $('<div>').attr('wlxml-tag', params.tag);
+ var dom = $('<div>')
+ .attr('wlxml-tag', params.tag);
if(params.klass)
if(params.klass)
- dom.attr('wlxml-class', params.klass);
+ dom.attr('wlxml-class', params.klass
.replace(/\./g, '-')
);
return dom;
},
return dom;
},
@@
-175,7
+181,9
@@
var DocumentTextElement = function(htmlElement, canvas) {
$.extend(DocumentTextElement, {
createDOM: function(params) {
$.extend(DocumentTextElement, {
createDOM: function(params) {
- return $(document.createTextNode(params.text));
+ return $('<div>')
+ .attr('wlxml-text', '')
+ .text(params.text);
},
create: function(params, canvas) {
},
create: function(params, canvas) {
@@
-190,8
+198,15
@@
$.extend(DocumentTextElement, {
DocumentTextElement.prototype = new DocumentElement();
$.extend(DocumentTextElement.prototype, {
DocumentTextElement.prototype = new DocumentElement();
$.extend(DocumentTextElement.prototype, {
+ _setupDOMHandler: function(htmlElement) {
+ var $element = $(htmlElement);
+ if(htmlElement.nodeType === Node.TEXT_NODE)
+ this.$element = $element.parent();
+ else
+ this.$element = $element;
+ },
setText: function(text) {
setText: function(text) {
- this.dom()[0].data = text;
+ this.dom()
.contents()
[0].data = text;
},
getText: function() {
return this.dom().text();
},
getText: function() {
return this.dom().text();