Skip to content

Commit f73da3d

Browse files
committed
Cache object parent key in tooltip; ensure orphaned tooltips are removed.
1 parent 19ce78c commit f73da3d

3 files changed

Lines changed: 14 additions & 3 deletions

File tree

js/Tooltip.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ class Tooltip {
55
$('body').append("<div id='tooltip'></div>");
66
this._div = $('#tooltip');
77
this.margin = 20;
8+
this.is_visible = false;
89
}
910

10-
showTable(header, data, x, y) {
11+
showTable(parent_key, header, data, x, y) {
12+
this.key = parent_key;
1113
this._div.stop(true, false)
1214
.empty()
1315
.append(Tooltip._makeInfoTable(header, data))
@@ -16,13 +18,15 @@ class Tooltip {
1618
'top': this._vPosition(y, 0),
1719
'opacity': 1,
1820
'z-index': 10});
21+
this.is_visible = true;
1922
}
2023

2124
hide(immediate) {
2225
var dur = 200;
2326
if (immediate) dur = 0;
2427
this._div.animate({opacity: 0}, {duration: dur});
2528
this._div.css({'z-index': -10});
29+
this.is_visible = false;
2630
}
2731

2832
showBrief(line, x, y) {

js/ViewManager.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,11 @@ class ViewManager
199199
self._update_sessions();
200200
break;
201201
}
202+
if (event == 'removed') {
203+
// check here if tooltip is visible and has same key as the removed object
204+
if (self.tooltip.is_visible && self.tooltip.key == obj.key)
205+
self.tooltip.hide();
206+
}
202207
});
203208
};
204209

js/views/View.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ class View {
202202
filtered = Object.keys(filtered)
203203
.sort()
204204
.reduce((r, k) => (r[k] = filtered[k], r), {});
205-
self.tooltip.showTable(dev.name+" (click to "+action+")", filtered, e.x, e.y);
205+
self.tooltip.showTable(dev.key, dev.name+" (click to "+action+")", filtered, e.x, e.y);
206206
}
207207

208208
setDevHover(dev) {
@@ -253,6 +253,7 @@ class View {
253253
link.view.hover(
254254
function(e) {
255255
self.tooltip.showTable(
256+
link.key,
256257
link.status+" link", {
257258
source: link.src.key,
258259
destination: link.dst.key
@@ -376,7 +377,7 @@ class View {
376377
filtered = Object.keys(filtered)
377378
.sort()
378379
.reduce((r, k) => (r[k] = filtered[k], r), {});
379-
self.tooltip.showTable(sig.device.name+":"+sig.name, filtered, x, y);
380+
self.tooltip.showTable(sig.key, sig.device.name+":"+sig.name, filtered, x, y);
380381
sig.view.animate({'stroke-width': 15}, 0, 'linear');
381382
}
382383
self.hoverDev = sig.device;
@@ -546,6 +547,7 @@ class View {
546547
function(e) {
547548
if (!self.draggingFrom) {
548549
self.tooltip.showTable(
550+
map.key,
549551
"Map", {
550552
source: map.srcs.map(s => s.key).join(', '),
551553
destination: map.dst.key,

0 commit comments

Comments
 (0)