diff options
| author | Alon Levy <alon@pobox.com> | 2015-01-13 12:19:07 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-01-13 12:28:57 +0200 |
| commit | c7d9b0ff4b0a558e70cd56419c53975e15d71ec2 (patch) | |
| tree | 1ae9dd33a537f6dffdcad9f3e1aef844b5ccab86 /src | |
| parent | 25162c7b9e483f7a11738b70144a3db34694bb13 (diff) | |
client/graph: find_node__* default to recursion but optional
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/model/graph.js | 22 | ||||
| -rw-r--r-- | src/client/textanalysis.js | 5 |
2 files changed, 17 insertions, 10 deletions
diff --git a/src/client/model/graph.js b/src/client/model/graph.js index b1afb634..2eb358c7 100644 --- a/src/client/model/graph.js +++ b/src/client/model/graph.js @@ -598,15 +598,16 @@ function Graph(spec) { /** * return node whose id matches the given id or undefined if no node was found */ - var find_node__by_id = function(id) { - if (base) { - var base_node = base.find_node__by_id(id); + var find_node__by_id = function(id, recursive) { + // default to recursion + recursive = recursive === undefined ? true : recursive; + if (recursive && base) { + var base_node = base.find_node__by_id(id, recursive); if (base_node) { - console.log('!!! returning base node'); return base_node; } } - return id_to_node_map[id]; + return id_to_node_map[id] || null; } this.find_node__by_id = find_node__by_id; @@ -623,12 +624,21 @@ function Graph(spec) { return ret; } - var find_node__by_name = function(name) { + var find_node__by_name = function(name, recursive) { + // default to recursion + recursive = recursive === undefined ? true : recursive; + if (recursive && base) { + var node = base.find_node__by_name(name, true); + if (node !== null) { + return node; + } + } for (var k in id_to_node_map) { if (compareNames(id_to_node_map[k].name, name)) { return id_to_node_map[k]; } } + return null; } this.find_node__by_name = find_node__by_name; diff --git a/src/client/textanalysis.js b/src/client/textanalysis.js index 0160ed7b..0c557412 100644 --- a/src/client/textanalysis.js +++ b/src/client/textanalysis.js @@ -477,10 +477,7 @@ var textAnalyser = function (spec) { for (j = i; j >= 0 && tokens[j] === undefined || tokens[j].token !== '#'; --j) {} name = tokens[j + 1] ? tokens[j + 1].token : NEW_NODE_NAME; node = edit_graph.find_node__by_name(name); - if (node === undefined) { - // return the first node by default - util.assert(node !== undefined, "can't find node"); - } + util.assert(node !== undefined, "can't find node"); return node; } |
