From c7d9b0ff4b0a558e70cd56419c53975e15d71ec2 Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Tue, 13 Jan 2015 12:19:07 +0200 Subject: client/graph: find_node__* default to recursion but optional --- src/client/model/graph.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'src/client/model/graph.js') 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; -- cgit v1.3.1