[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
var self = this;
var renderer = function(r, n) {
var node;
var set;
var shape = n.node.shape;
if(shape == 'rectangle')
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
}).dblclick(function() {
self.add_edit_node(n.node.id, self.node);
});
set = r.set()
.push(node)
.push(
r.text(n.node.x, n.node.y, (n.label || n.id))
.attr({"cursor":"pointer"})
.dblclick(function() {
self.add_edit_node(n.node.id, self.node);
})
);
node.attr({cursor: "pointer"});
var propagate_to_previous_sibling = function (e) {
$(this).prev().trigger(e.type);
};
var nodes = r.set()
.push(node, r.text(n.node.x, n.node.y, (n.label || n.id))
.click(propagate_to_previous_sibling)
.dblclick(propagate_to_previous_sibling)
).attr("cursor", "pointer");
if(shape == "ellipse")
node.attr({rx: "40", ry: "20"});
@ -148,7 +145,8 @@ openerp.web.DiagramView = openerp.web.View.extend({
node.attr({width: "60", height: "44"});
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) {