diff options
| author | Alon Levy <alon@pobox.com> | 2015-05-12 12:20:45 +0300 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-05-12 12:30:19 +0300 |
| commit | f8824c752daa16e8694ef2cb0790788d6b324d41 (patch) | |
| tree | ac183d521120a3628e6248337ab8893cad52cf68 /src/client/view/selection.js | |
| parent | 1a2b6af256be5c3e0f67a3a4741a7320890b2718 (diff) | |
client/view/selection: add select_both & invert_both
Diffstat (limited to 'src/client/view/selection.js')
| -rw-r--r-- | src/client/view/selection.js | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/client/view/selection.js b/src/client/view/selection.js index 680695b7..5455c7c0 100644 --- a/src/client/view/selection.js +++ b/src/client/view/selection.js @@ -255,9 +255,7 @@ function arr_compare(a1, a2) var inner_select_nodes = function(nodes, keep_selected_links) { - var related = nodes.length == 1 ? neighbours(nodes) : mutual_neighbours(nodes); - - inner_select(nodes, related.nodes, keep_selected_links ? selected_links : [], related.links); + select_both(nodes, keep_selected_links ? selected_links : []); } var select_nodes = function(nodes, keep_selected_links) @@ -270,6 +268,13 @@ var select_nodes = function(nodes, keep_selected_links) } } +var select_both = function(new_nodes, new_links) +{ + var related = new_nodes.length == 1 ? neighbours(new_nodes) : mutual_neighbours(new_nodes); + + inner_select(new_nodes, related.nodes, new_links, related.links); +} + var inner_select = function(new_selected_nodes, new_related_nodes, new_selected_links, new_related_links) { if (arr_compare(new_selected_nodes, selected_nodes) && arr_compare(new_related_nodes, related_nodes) && @@ -308,6 +313,11 @@ var invert_nodes = function(nodes) select_nodes(invert(selected_nodes, nodes), true); } +var invert_both = function(nodes, links) +{ + select_both(invert(selected_nodes, nodes), invert(selected_links, links)); +} + var setup_toolbar = function(main_graph, main_graph_view) { var merge_selection = function() { @@ -387,6 +397,8 @@ return { invert_nodes: invert_nodes, select_link: select_link, invert_link: invert_link, + select_both: select_both, + invert_both: invert_both, class__node: class__node, class__link: class__link, node_selected: node_selected, |
