[IMP] propagate click events from labels to the corresponding nodes in order to avoid implementing all handlers twice

bzr revid: xmo@openerp.com-20111026124928-a5yq78p1cejg2uzx
This commit is contained in:
Xavier Morel 2011-10-26 14:49:28 +02:00
parent e8bc3209ae
commit a45785d2f8
1 changed files with 12 additions and 14 deletions

View File

@ -121,26 +121,23 @@ openerp.web.DiagramView = openerp.web.View.extend({
//Custom logic //Custom logic
var self = this; var self = this;
var renderer = function(r, n) { var renderer = function(r, n) {
var node;
var set;
var shape = n.node.shape; var shape = n.node.shape;
if(shape == 'rectangle') if(shape == 'rectangle')
shape = 'rect'; shape = 'rect';
node = r[shape](n.node.x, n.node.y).attr({ var node = r[shape](n.node.x, n.node.y).attr({
"fill": n.node.color "fill": n.node.color
}).dblclick(function() { }).dblclick(function() {
self.add_edit_node(n.node.id, self.node); self.add_edit_node(n.node.id, self.node);
}); });
set = r.set()
.push(node) var propagate_to_previous_sibling = function (e) {
.push( $(this).prev().trigger(e.type);
r.text(n.node.x, n.node.y, (n.label || n.id)) };
.attr({"cursor":"pointer"}) var nodes = r.set()
.dblclick(function() { .push(node, r.text(n.node.x, n.node.y, (n.label || n.id))
self.add_edit_node(n.node.id, self.node); .click(propagate_to_previous_sibling)
}) .dblclick(propagate_to_previous_sibling)
); ).attr("cursor", "pointer");
node.attr({cursor: "pointer"});
if(shape == "ellipse") if(shape == "ellipse")
node.attr({rx: "40", ry: "20"}); node.attr({rx: "40", ry: "20"});
@ -148,7 +145,8 @@ openerp.web.DiagramView = openerp.web.View.extend({
node.attr({width: "60", height: "44"}); node.attr({width: "60", height: "44"});
node.next.attr({"text-anchor": "middle", x: n.node.x + 20, y: n.node.y + 20}); node.next.attr({"text-anchor": "middle", x: n.node.x + 20, y: n.node.y + 20});
} }
return set;
return nodes;
}; };
_.each(res_nodes, function(res_node) { _.each(res_nodes, function(res_node) {