From 3eb72a9d3e07d35ea45b2b7196315aec293ec5b7 Mon Sep 17 00:00:00 2001 From: Jonny Bradley Date: Tue, 14 Apr 2020 18:54:02 +0100 Subject: [PATCH 1/3] Add hooks for mousedown, mousemove events and add the same params to doubleclick (namely selected/nearest, the event and the node's screen position) --- springyui.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/springyui.js b/springyui.js index acc35eb..2bd94f3 100755 --- a/springyui.js +++ b/springyui.js @@ -93,6 +93,9 @@ jQuery.fn.springy = function(params) { } } + if (nearest.node && nearest.node.data && nearest.node.data.onmousedown) { + nearest.node.data.onmousedown(selected, e, toScreen(nearest.point.p)); + } renderer.start(); }); @@ -103,7 +106,7 @@ jQuery.fn.springy = function(params) { selected = layout.nearest(p); node = selected.node; if (node && node.data && node.data.ondoubleclick) { - node.data.ondoubleclick(); + node.data.ondoubleclick(selected, e, toScreen(layout.point(node).p)); } }); @@ -117,6 +120,9 @@ jQuery.fn.springy = function(params) { dragged.point.p.y = p.y; } + if (nearest.node && nearest.node.data && nearest.node.data.onmousemove) { + nearest.node.data.onmousemove(nearest, e, toScreen(nearest.point.p)); + } renderer.start(); }); From 0569fa65d6911de7085d7f9bfedbb50762ee6c15 Mon Sep 17 00:00:00 2001 From: Jonny Bradley Date: Tue, 14 Apr 2020 18:54:14 +0100 Subject: [PATCH 2/3] Expose nodeFont, edgeFont and maxSpeed to springyui.js --- springyui.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/springyui.js b/springyui.js index 2bd94f3..804d96a 100755 --- a/springyui.js +++ b/springyui.js @@ -27,12 +27,13 @@ Copyright (c) 2010 Dennis Hotson jQuery.fn.springy = function(params) { var graph = this.graph = params.graph || new Springy.Graph(); - var nodeFont = "16px Verdana, sans-serif"; - var edgeFont = "8px Verdana, sans-serif"; + var nodeFont = params.nodeFont || "16px Verdana, sans-serif"; + var edgeFont = params.edgeFont || "8px Verdana, sans-serif"; var stiffness = params.stiffness || 400.0; var repulsion = params.repulsion || 400.0; var damping = params.damping || 0.5; var minEnergyThreshold = params.minEnergyThreshold || 0.00001; + var maxSpeed = params.maxSpeed || Infinity; var nodeSelected = params.nodeSelected || null; var nodeImages = {}; var edgeLabelsUpright = true; @@ -40,7 +41,7 @@ jQuery.fn.springy = function(params) { var canvas = this[0]; var ctx = canvas.getContext("2d"); - var layout = this.layout = new Springy.Layout.ForceDirected(graph, stiffness, repulsion, damping, minEnergyThreshold); + var layout = this.layout = new Springy.Layout.ForceDirected(graph, stiffness, repulsion, damping, minEnergyThreshold, maxSpeed); // calculate bounding box of graph layout.. with ease-in var currentBB = layout.getBoundingBox(); From 48fe9ef13a5ca9479cebe79f16e7a6576ea8037a Mon Sep 17 00:00:00 2001 From: Jonny Bradley Date: Tue, 14 Apr 2020 18:59:22 +0100 Subject: [PATCH 3/3] Better checking of selected in dblclick --- springyui.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/springyui.js b/springyui.js index 804d96a..675dcea 100755 --- a/springyui.js +++ b/springyui.js @@ -105,9 +105,8 @@ jQuery.fn.springy = function(params) { var pos = jQuery(this).offset(); var p = fromScreen({x: e.pageX - pos.left, y: e.pageY - pos.top}); selected = layout.nearest(p); - node = selected.node; - if (node && node.data && node.data.ondoubleclick) { - node.data.ondoubleclick(selected, e, toScreen(layout.point(node).p)); + if (selected && selected.node && selected.node.data && selected.node.data.ondoubleclick) { + selected.node.data.ondoubleclick(selected, e, toScreen(layout.point(node).p)); } });