From b9910e43259a4121a3efc42e127d575eb62b0d18 Mon Sep 17 00:00:00 2001 From: "Vaibhav (OpenERP)" Date: Thu, 25 Aug 2011 11:02:02 +0530 Subject: [PATCH] [FIX] Event for path Element. bzr revid: vda@tinyerp.com-20110825053202-t55humzbczq000tn --- .../static/src/css/base_diagram.css | 4 + addons/base_diagram/static/src/js/diagram.js | 121 ++++++++++-------- 2 files changed, 70 insertions(+), 55 deletions(-) diff --git a/addons/base_diagram/static/src/css/base_diagram.css b/addons/base_diagram/static/src/css/base_diagram.css index 6610666d335..19939b8c337 100644 --- a/addons/base_diagram/static/src/css/base_diagram.css +++ b/addons/base_diagram/static/src/css/base_diagram.css @@ -12,3 +12,7 @@ .openerp .oe_diagram_buttons { float: left; } + +.openerp .diagram path { + cursor: pointer; +} diff --git a/addons/base_diagram/static/src/js/diagram.js b/addons/base_diagram/static/src/js/diagram.js index 6eec210235c..60967cb0053 100644 --- a/addons/base_diagram/static/src/js/diagram.js +++ b/addons/base_diagram/static/src/js/diagram.js @@ -156,61 +156,62 @@ openerp.base_diagram.DiagramView = openerp.base.View.extend({ //Custom logic var self = this; var renderer= function(r, n) { - var node; - var set; + var node; + var set; - // ellipse - if (n.node.shape == 'ellipse') { - var node = r.ellipse(n.node.x - 30, n.node.y - 13, 40, 20).attr({ - "fill": n.node.color, - r: "12px", - "stroke-width": n.distance == 0 ? "3px" : "1px" - }); - - set = r.set().push(node).push(r.text(n.node.x - 30, n.node.y - 10, (n.label || n.id))); + // ellipse + if (n.node.shape == 'ellipse') { + var node = r.ellipse(n.node.x - 30, n.node.y - 13, 40, 20).attr({ + "fill": n.node.color, + r: "12px", + "stroke-width": n.distance == 0 ? "3px" : "1px" + }); + + set = r.set().push(node).push(r.text(n.node.x - 30, n.node.y - 10, (n.label || n.id))); + } + + // rectangle + else if(n.node.shape == 'rectangle') { + var node = r.rect(n.node.x-30, n.node.y-13, 60, 44).attr({ + "fill": n.node.color, + r : "12px", + "stroke-width" : n.distance == 0 ? "3px" : "1px" + }); + set = r.set().push(node).push(r.text(n.node.x , n.node.y+5 , (n.label || n.id))); + } + + // circle + else { + var node = r.circle(n.node.x, n.node.y, 150).attr({ + "fill": n.node.color, + r : "30px", + "stroke-width" : n.distance == 0 ? "3px" : "1px" + }); + set = r.set().push(node).push(r.text(n.node.x , n.node.y , (n.label || n.id))); + } + + //Shape Node Event + jQuery(node.node).attr({ + 'id': n.node.id, + 'name': n.id, + 'kind': n.node.options['Kind'] || n.node.options['kind'] + }).dblclick(function() { + var $this = jQuery(this); + self.search_activity($this.attr('id'), $this.attr('name'), $this.attr('kind')) + }); + + //Text Node Event + jQuery(node.next.node).attr({ + 'id': n.node.id, + 'name': n.id, + 'kind': n.node.options['Kind'] || n.node.options['kind'] + }).dblclick(function() { + var $this = jQuery(this); + self.search_activity($this.attr('id'), $this.attr('name'), $this.attr('kind')) + }); + return set; } - // rectangle - else if(n.node.shape == 'rectangle') { - var node = r.rect(n.node.x-30, n.node.y-13, 60, 44).attr({ - "fill": n.node.color, - r : "12px", - "stroke-width" : n.distance == 0 ? "3px" : "1px" - }); - set = r.set().push(node).push(r.text(n.node.x , n.node.y+5 , (n.label || n.id))); - } - - // circle - else { - var node = r.circle(n.node.x, n.node.y, 150).attr({ - "fill": n.node.color, - r : "30px", - "stroke-width" : n.distance == 0 ? "3px" : "1px" - }); - set = r.set().push(node).push(r.text(n.node.x , n.node.y , (n.label || n.id))); - } - - jQuery(node.node).attr({ - 'id': n.node.id, - 'name': n.id, - 'kind': n.node.options['Kind'] || n.node.options['kind'] - }).dblclick(function() { - var $this = jQuery(this); - self.search_activity($this.attr('id'), $this.attr('name'), $this.attr('kind')) - }); - - jQuery(node.next.node).attr({ - 'id': n.node.id, - 'name': n.id, - 'kind': n.node.options['Kind'] || n.node.options['kind'] - }).dblclick(function() { - var $this = jQuery(this); - self.search_activity($this.attr('id'), $this.attr('name'), $this.attr('kind')) - }); - return set; - } - - for(node in res_nodes) { var res_node = res_nodes[node]; dia.addNode(res_node['name'],{node: res_node,render: renderer}); @@ -218,10 +219,9 @@ openerp.base_diagram.DiagramView = openerp.base.View.extend({ for(cr in res_connectors) { var res_connector = res_connectors[cr]; - dia.addEdge(res_connector['source'], res_connector['destination']); + dia.addEdge(res_connector['source'], res_connector['destination'], {directed : true}); } - var layouter = new Graph.Layout.Spring(dia); layouter.layout(); if ($('div#dia-canvas').children().length > 0) { @@ -229,7 +229,18 @@ openerp.base_diagram.DiagramView = openerp.base.View.extend({ } var renderer = new Graph.Renderer.Raphael('dia-canvas', dia, $('div#dia-canvas').width(), $('div#dia-canvas').height()); renderer.draw(); - + + //Path(Edges) + jQuery('path',renderer.r.canvas).each(function(index, path) { + + $(this).attr({ + 'd_id': res_connectors[index+1].d_id, + 'id': res_connectors[index+1].id, + 's_id': res_connectors[index+1].s_id, + }) + }); + jQuery('path',renderer.r.canvas).dblclick(function(){ + }); }, search_activity: function(id, name, kind) {