diff options
| author | LV-426 <lv-426@taproot.org.il> | 2014-11-13 17:11:39 +0200 |
|---|---|---|
| committer | LV-426 <lv-426@taproot.org.il> | 2014-11-13 17:11:57 +0200 |
| commit | 5e8e51da2a66445c1cc6e289634769b165c9d59a (patch) | |
| tree | a6a6e484daf61b6f45db9c0a2aa681690ffb3c28 /scripts | |
| parent | 822073302c470a7adba15bf9de4df1089c9b43df (diff) | |
canvas_handler_dblclick(): add node on doubleclick
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/rz_core.js | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/scripts/rz_core.js b/scripts/rz_core.js index b6ca473a..fc9bad47 100644 --- a/scripts/rz_core.js +++ b/scripts/rz_core.js @@ -74,7 +74,7 @@ var initDrawingArea = function () { //Zoom scale behavior in zoom.js zoomObject = d3.behavior.zoom().scaleExtent([0.1, 3]).on("zoom", zoom); - + vis = d3.select(el).append("svg:svg") .attr('id', 'canvas_d3') .attr("width", '100%') @@ -115,6 +115,7 @@ var initDrawingArea = function () { .start(); graph.update = update; + $('#canvas_d3').dblclick(canvas_handler_dblclick); } initDrawingArea(); @@ -134,6 +135,35 @@ function locate_visual_element(model_obj){ return id_sel[0]; } +/** + * add node on canvas double click + */ +function canvas_handler_dblclick(){ + var n = model_core.create_node__set_random_id(); + n.name = ''; // will be set by user + + graph._addNodeNoHistory(n); // FIXME: clean once node creation functions consolidate + graph.update(); + + var n_ve = locate_visual_element(n); // locate visual element + + var on_slowdown_cb = function(){ + var set_focus = true; + editNode(n_ve, n, set_focus); + observer.disconnect(); + } + var mutation_handler = rz_observer.new_Mutation_Handler__on_dxy_slowdown(on_slowdown_cb); + var observer = rz_observer.new_MutationObserver(mutation_handler); + mutation_handler.on_slowdown_threshold_reached; + + observer.observe(n_ve, { + subtree: false, + childList : false, + attributes: true, + attributeOldValue : true, + }); +} + function update(no_relayout) { var node, link, |
