From a4adf9cdf1b3f3aa2d85c188c1eb44ab13e0a660 Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Mon, 29 Dec 2014 14:57:00 +0200 Subject: wip names bus drop, more bacon, fix completer remove names, fix json loading --- src/client/textanalysis.js | 47 +++++++++++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 19 deletions(-) (limited to 'src/client/textanalysis.js') diff --git a/src/client/textanalysis.js b/src/client/textanalysis.js index d5a050eb..5e78f416 100644 --- a/src/client/textanalysis.js +++ b/src/client/textanalysis.js @@ -59,8 +59,8 @@ function new_tokenize(text, node_token, quote) return tokens; } -define(['rz_core', 'model/core', 'model/util', 'model/diff', 'rz_bus', 'consts'], -function(rz_core, model_core, model_util, model_diff, rz_bus, consts) { +define(['rz_core', 'model/core', 'model/util', 'model/diff', 'consts'], +function(rz_core, model_core, model_util, model_diff, consts) { var typeindex = 0; var nodetypes = consts.nodetypes; @@ -87,6 +87,12 @@ function autoSuggestAddName(name) suggestions_options.push(sugg); } +function autoSuggestRemoveName(name) +{ + delete sugg[name]; + suggestions_options.push(sugg); +} + /* up_to_two_renames: * * allow one letter or 'new node' to anything changes */ @@ -525,23 +531,26 @@ var textAnalyser = function (newtext, finalize) { function init(graph) { - function onNodeAdded(diff) { - if (!diff || !diff.nodes || !diff.nodes.added) { - return; - } - for (var k in diff.nodes.added) { - var node = diff.nodes[k]; - autoSuggestAddName(node.name.toLowerCase()); - } - } - function toLowerCase(n) { - return n.toLowerCase(); - } - function onSuggestedNameAdd(names) { - names.map(toLowerCase).forEach(autoSuggestAddName); - } - graph.diffBus.onValue(onNodeAdded); - rz_bus.names.onValue(onSuggestedNameAdd); + // deal with new nodes + graph.diffBus.filter(function (diff) { + return diff.nodes && diff.nodes.added; + }).map(function (diff) { + return diff.nodes.added.toLowerCase(); + }).onValue(autoSuggestAddName); + + // deal with renamed links + graph.diffBus.filter(function (diff) { + return diff && diff.changed && diff.changed.links; + }).map(function (diff) { + return diff.changed.links; + }).flatMap(Bacon.fromArray) + .onValue(function (diff) { + console.log('renamed link ' + diff.removed + ' -> ' + diff.added); + autoSuggestRemoveName(diff.removed.toLowerCase()); + autoSuggestAddName(diff.added.toLowerCase()); + }); + + // TODO renamed nodes, plus reuse part of the pipeline. } return { -- cgit v1.3.1