summaryrefslogtreecommitdiff
path: root/src/client/view
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-05-12 12:20:45 +0300
committerAlon Levy <alon@pobox.com>2015-05-12 12:30:19 +0300
commitf8824c752daa16e8694ef2cb0790788d6b324d41 (patch)
treeac183d521120a3628e6248337ab8893cad52cf68 /src/client/view
parent1a2b6af256be5c3e0f67a3a4741a7320890b2718 (diff)
client/view/selection: add select_both & invert_both
Diffstat (limited to 'src/client/view')
-rw-r--r--src/client/view/selection.js18
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,