From 419e6243acf2265ff8edf26d3026ce578d081a7b Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Mon, 5 Jan 2015 15:45:32 +0200 Subject: client: fix link selection (still have links appearing above nodes) --- src/client/view/graph_view.js | 8 ++++---- src/client/view/selection.js | 10 ++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'src/client') diff --git a/src/client/view/graph_view.js b/src/client/view/graph_view.js index 8f43d9ea..082338ca 100644 --- a/src/client/view/graph_view.js +++ b/src/client/view/graph_view.js @@ -233,12 +233,12 @@ function GraphView(spec) { link.attr("class", function(d, i){ var temp_and = (d.name && d.name.replace(/ /g,"")=="and" && temporary) ? "temp_and" : ""; - return ["graph link", temp_and, selection.selected_class(d)].join(' '); + return ["graph link", temp_and, selection.selected_class__link(d)].join(' '); }); link.selectAll('path.link') .attr('class', function(d) { - return [d.state || "perm", selection.selected_class(d), "link graph"].join(' '); + return [d.state || "perm", selection.selected_class__link(d), "link graph"].join(' '); }); link.exit().remove(); @@ -255,7 +255,7 @@ function GraphView(spec) { .append("text") .attr('id', function(d){ return d.id; }) // append link id to enable data->visual mapping .attr("class", function(d) { - return ["linklabel graph", selection.selected_class(d)].join(' '); + return ["linklabel graph", selection.selected_class__link(d)].join(' '); }) .attr("text-anchor", "middle") .on("click", function(d, i) { @@ -306,7 +306,7 @@ function GraphView(spec) { if (selection.node_selected(d)) { ontop.push(this); } - return ['node', selection.selected_class(d)].join(' '); + return ['node', selection.selected_class__node(d)].join(' '); }); function reparent(new_parent, element) { if (element.parentNode == new_parent) { diff --git a/src/client/view/selection.js b/src/client/view/selection.js index 386e22da..7ce70d3f 100644 --- a/src/client/view/selection.js +++ b/src/client/view/selection.js @@ -111,10 +111,15 @@ var node_selected = function(node) { return selected_nodes__by_id[node.id] !== undefined; } -var selected_class = function(node) { +var selected_class__node = function(node) { return selected_nodes.length > 0 ? (node_selected(node) ? "selected" : "notselected") : ""; } +var selected_class__link = function(link) { + return selected_nodes.length > 0 ? (node_selected(link.__src) || node_selected(link.__dst) ? + "selected" : "notselected") : ""; +} + var clear = function() { updateSelectedNodesBus([]); get_rz_core().main_graph.setRegularState(); @@ -146,7 +151,8 @@ return { connectedComponent: connectedComponent, clear: clear, update: update, - selected_class: selected_class, + selected_class__node: selected_class__node, + selected_class__link: selected_class__link, node_selected: node_selected, selectionChangedBus: selectionChangedBus, }; -- cgit v1.3.1