summaryrefslogtreecommitdiff
path: root/src/client/textanalysis.ui.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/textanalysis.ui.js')
-rw-r--r--src/client/textanalysis.ui.js41
1 files changed, 28 insertions, 13 deletions
diff --git a/src/client/textanalysis.ui.js b/src/client/textanalysis.ui.js
index 5dc1da12..95c9903f 100644
--- a/src/client/textanalysis.ui.js
+++ b/src/client/textanalysis.ui.js
@@ -11,7 +11,12 @@ var text = "", // Last text of sentence
description = consts.description,
input = new Bacon.Bus(),
initial_width = element.width(),
- plus_button_initial_offset = plus_button.offset();
+ plus_button_initial_offset = plus_button.offset(),
+ nbsp = String.fromCharCode(160),
+ // aliases
+ value = util.value,
+ selectionStart = util.selectionStart,
+ setSelection = util.setSelection;
function get_svg__body_position(node_id)
{
@@ -79,9 +84,9 @@ function analyzeSentence(spec)
spec.finalize !== undefined,
"bad input");
- var sentence = spec.sentence,
+ var sentence = nbsp_to_spaces(spec.sentence),
finalize = spec.finalize,
- ret = textanalysis.textAnalyser(spec),
+ ret = textanalysis.textAnalyser({'sentence': sentence, 'finalize': finalize}),
lastnode;
ret.applyToGraph({
@@ -92,7 +97,7 @@ function analyzeSentence(spec)
switch (ret.state) {
case textanalysis.ANALYSIS_NODE_START:
- lastnode = textanalysis.lastnode(rz_core.edit_graph, element_raw.selectionStart);
+ lastnode = textanalysis.lastnode(rz_core.edit_graph, selectionStart(element_raw));
if (lastnode !== null) {
typeselection.analysisNodeStart(lastnode.id);
}
@@ -124,7 +129,7 @@ function textSelect(inp, s, e) {
}
function changeType(arg) {
- var lastnode = textanalysis.lastnode(rz_core.edit_graph, element_raw.selectionStart),
+ var lastnode = textanalysis.lastnode(rz_core.edit_graph, selectionStart(element_raw)),
nodetype,
id,
name;
@@ -162,14 +167,14 @@ var main = function ()
submitNewSentence();
} else {
analyzeSentence({
- sentence: element.val(),
+ sentence: value(element_raw),
finalize: false,
});
}
ret = false;
break;
case 9: //TAB
- if (textanalysis.lastnode(rz_core.edit_graph, element_raw.selectionStart)) {
+ if (textanalysis.lastnode(rz_core.edit_graph, selectionStart(element_raw))) {
e.preventDefault();
changeType(e.shiftKey ? "up" : "down");
ret = false;
@@ -180,14 +185,14 @@ var main = function ()
return ret;
});
element.bind('input selectionchange click', function(e) {
- analysisCompleter.oninput(element_raw.value, element_raw.selectionStart);
+ analysisCompleter.oninput(value(element_raw), selectionStart(element_raw));
e.stopPropagation();
e.preventDefault();
});
function submitNewSentence() {
- text = element.val();
- element.val("");
+ text = value(element_raw);
+ value(element_raw, "");
analyzeSentence({
sentence: text,
finalize: true,
@@ -219,14 +224,24 @@ var main = function ()
}
};
+function nbsp_to_spaces(str) {
+ return str.replace(new RegExp(nbsp, 'g'), ' ');
+}
+
var analyze_element_text = function()
{
- if (element.val() == text) {
+ var current_text = value(element_raw),
+ parts,
+ base_parts,
+ selection_start,
+ spaced_text = nbsp_to_spaces(current_text);
+
+ if (current_text == text) {
return;
}
- text = element.val();
+ text = current_text;
analyzeSentence({
- sentence: text,
+ sentence: spaced_text,
finalize: false,
});
input.push({where: consts.INPUT_WHERE_TEXTANALYSIS, input: text});