Skip to content

Commit 0151cdc

Browse files
committedJun 11, 2013
Made it so that double clicking a legend item will cause all other series' to be disabled.
1 parent 739b93f commit 0151cdc

11 files changed

+236
-6
lines changed
 

‎nv.d3.js

+115
Original file line numberDiff line numberDiff line change
@@ -1947,6 +1947,19 @@ nv.models.cumulativeLineChart = function() {
19471947
chart.update();
19481948
});
19491949

1950+
legend.dispatch.on('legendDblclick', function(d) {
1951+
//Double clicking should always enable current series, and disabled all others.
1952+
data.forEach(function(d) {
1953+
d.disabled = true;
1954+
});
1955+
d.disabled = false;
1956+
1957+
state.disabled = data.map(function(d) { return !!d.disabled });
1958+
dispatch.stateChange(state);
1959+
chart.update();
1960+
});
1961+
1962+
19501963
/*
19511964
//
19521965
legend.dispatch.on('legendMouseover', function(d, i) {
@@ -3456,6 +3469,19 @@ nv.models.historicalBarChart = function() {
34563469
selection.transition().call(chart);
34573470
});
34583471

3472+
legend.dispatch.on('legendDblclick', function(d) {
3473+
//Double clicking should always enable current series, and disabled all others.
3474+
data.forEach(function(d) {
3475+
d.disabled = true;
3476+
});
3477+
d.disabled = false;
3478+
3479+
state.disabled = data.map(function(d) { return !!d.disabled });
3480+
dispatch.stateChange(state);
3481+
chart.update();
3482+
});
3483+
3484+
34593485
/*
34603486
legend.dispatch.on('legendMouseover', function(d, i) {
34613487
d.hover = true;
@@ -4671,6 +4697,19 @@ nv.models.lineChart = function() {
46714697
chart.update();
46724698
});
46734699

4700+
legend.dispatch.on('legendDblclick', function(d) {
4701+
//Double clicking should always enable current series, and disabled all others.
4702+
data.forEach(function(d) {
4703+
d.disabled = true;
4704+
});
4705+
d.disabled = false;
4706+
4707+
state.disabled = data.map(function(d) { return !!d.disabled });
4708+
dispatch.stateChange(state);
4709+
chart.update();
4710+
});
4711+
4712+
46744713
/*
46754714
legend.dispatch.on('legendMouseover', function(d, i) {
46764715
d.hover = true;
@@ -5113,6 +5152,19 @@ nv.models.linePlusBarChart = function() {
51135152
chart.update();
51145153
});
51155154

5155+
legend.dispatch.on('legendDblclick', function(d) {
5156+
//Double clicking should always enable current series, and disabled all others.
5157+
data.forEach(function(d) {
5158+
d.disabled = true;
5159+
});
5160+
d.disabled = false;
5161+
5162+
state.disabled = data.map(function(d) { return !!d.disabled });
5163+
dispatch.stateChange(state);
5164+
chart.update();
5165+
});
5166+
5167+
51165168
dispatch.on('tooltipShow', function(e) {
51175169
if (tooltips) showTooltip(e, that.parentNode);
51185170
});
@@ -7246,6 +7298,19 @@ nv.models.multiBarChart = function() {
72467298
chart.update();
72477299
});
72487300

7301+
legend.dispatch.on('legendDblclick', function(d) {
7302+
//Double clicking should always enable current series, and disabled all others.
7303+
data.forEach(function(d) {
7304+
d.disabled = true;
7305+
});
7306+
d.disabled = false;
7307+
7308+
state.disabled = data.map(function(d) { return !!d.disabled });
7309+
dispatch.stateChange(state);
7310+
chart.update();
7311+
});
7312+
7313+
72497314
controls.dispatch.on('legendClick', function(d,i) {
72507315
if (!d.disabled) return;
72517316
controlsData = controlsData.map(function(s) {
@@ -8121,6 +8186,18 @@ nv.models.multiBarHorizontalChart = function() {
81218186
chart.update();
81228187
});
81238188

8189+
legend.dispatch.on('legendDblclick', function(d) {
8190+
//Double clicking should always enable current series, and disabled all others.
8191+
data.forEach(function(d) {
8192+
d.disabled = true;
8193+
});
8194+
d.disabled = false;
8195+
8196+
state.disabled = data.map(function(d) { return !!d.disabled });
8197+
dispatch.stateChange(state);
8198+
chart.update();
8199+
});
8200+
81248201
controls.dispatch.on('legendClick', function(d,i) {
81258202
if (!d.disabled) return;
81268203
controlsData = controlsData.map(function(s) {
@@ -10838,6 +10915,19 @@ nv.models.scatterChart = function() {
1083810915
chart.update();
1083910916
});
1084010917

10918+
legend.dispatch.on('legendDblclick', function(d) {
10919+
//Double clicking should always enable current series, and disabled all others.
10920+
data.forEach(function(d) {
10921+
d.disabled = true;
10922+
});
10923+
d.disabled = false;
10924+
10925+
state.disabled = data.map(function(d) { return !!d.disabled });
10926+
dispatch.stateChange(state);
10927+
chart.update();
10928+
});
10929+
10930+
1084110931
/*
1084210932
legend.dispatch.on('legendMouseover', function(d, i) {
1084310933
d.hover = true;
@@ -11447,6 +11537,19 @@ nv.models.scatterPlusLineChart = function() {
1144711537
chart.update();
1144811538
});
1144911539

11540+
legend.dispatch.on('legendDblclick', function(d) {
11541+
//Double clicking should always enable current series, and disabled all others.
11542+
data.forEach(function(d) {
11543+
d.disabled = true;
11544+
});
11545+
d.disabled = false;
11546+
11547+
state.disabled = data.map(function(d) { return !!d.disabled });
11548+
dispatch.stateChange(state);
11549+
chart.update();
11550+
});
11551+
11552+
1145011553
/*
1145111554
legend.dispatch.on('legendMouseover', function(d, i) {
1145211555
d.hover = true;
@@ -12740,6 +12843,18 @@ nv.models.stackedAreaChart = function() {
1274012843
chart.update();
1274112844
});
1274212845

12846+
legend.dispatch.on('legendDblclick', function(d) {
12847+
//Double clicking should always enable current series, and disabled all others.
12848+
data.forEach(function(d) {
12849+
d.disabled = true;
12850+
});
12851+
d.disabled = false;
12852+
12853+
state.disabled = data.map(function(d) { return !!d.disabled });
12854+
dispatch.stateChange(state);
12855+
chart.update();
12856+
});
12857+
1274312858
controls.dispatch.on('legendClick', function(d,i) {
1274412859
if (!d.disabled) return;
1274512860

‎nv.d3.min.js

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/models/cumulativeLineChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,19 @@ nv.models.cumulativeLineChart = function() {
461461
chart.update();
462462
});
463463

464+
legend.dispatch.on('legendDblclick', function(d) {
465+
//Double clicking should always enable current series, and disabled all others.
466+
data.forEach(function(d) {
467+
d.disabled = true;
468+
});
469+
d.disabled = false;
470+
471+
state.disabled = data.map(function(d) { return !!d.disabled });
472+
dispatch.stateChange(state);
473+
chart.update();
474+
});
475+
476+
464477
/*
465478
//
466479
legend.dispatch.on('legendMouseover', function(d, i) {

‎src/models/historicalBarChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,19 @@ nv.models.historicalBarChart = function() {
246246
selection.transition().call(chart);
247247
});
248248

249+
legend.dispatch.on('legendDblclick', function(d) {
250+
//Double clicking should always enable current series, and disabled all others.
251+
data.forEach(function(d) {
252+
d.disabled = true;
253+
});
254+
d.disabled = false;
255+
256+
state.disabled = data.map(function(d) { return !!d.disabled });
257+
dispatch.stateChange(state);
258+
chart.update();
259+
});
260+
261+
249262
/*
250263
legend.dispatch.on('legendMouseover', function(d, i) {
251264
d.hover = true;

‎src/models/lineChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,19 @@ nv.models.lineChart = function() {
247247
chart.update();
248248
});
249249

250+
legend.dispatch.on('legendDblclick', function(d) {
251+
//Double clicking should always enable current series, and disabled all others.
252+
data.forEach(function(d) {
253+
d.disabled = true;
254+
});
255+
d.disabled = false;
256+
257+
state.disabled = data.map(function(d) { return !!d.disabled });
258+
dispatch.stateChange(state);
259+
chart.update();
260+
});
261+
262+
250263
/*
251264
legend.dispatch.on('legendMouseover', function(d, i) {
252265
d.hover = true;

‎src/models/linePlusBarChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,19 @@ nv.models.linePlusBarChart = function() {
281281
chart.update();
282282
});
283283

284+
legend.dispatch.on('legendDblclick', function(d) {
285+
//Double clicking should always enable current series, and disabled all others.
286+
data.forEach(function(d) {
287+
d.disabled = true;
288+
});
289+
d.disabled = false;
290+
291+
state.disabled = data.map(function(d) { return !!d.disabled });
292+
dispatch.stateChange(state);
293+
chart.update();
294+
});
295+
296+
284297
dispatch.on('tooltipShow', function(e) {
285298
if (tooltips) showTooltip(e, that.parentNode);
286299
});

‎src/models/multiBarChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,19 @@ nv.models.multiBarChart = function() {
305305
chart.update();
306306
});
307307

308+
legend.dispatch.on('legendDblclick', function(d) {
309+
//Double clicking should always enable current series, and disabled all others.
310+
data.forEach(function(d) {
311+
d.disabled = true;
312+
});
313+
d.disabled = false;
314+
315+
state.disabled = data.map(function(d) { return !!d.disabled });
316+
dispatch.stateChange(state);
317+
chart.update();
318+
});
319+
320+
308321
controls.dispatch.on('legendClick', function(d,i) {
309322
if (!d.disabled) return;
310323
controlsData = controlsData.map(function(s) {

‎src/models/multiBarHorizontalChart.js

+12
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,18 @@ nv.models.multiBarHorizontalChart = function() {
267267
chart.update();
268268
});
269269

270+
legend.dispatch.on('legendDblclick', function(d) {
271+
//Double clicking should always enable current series, and disabled all others.
272+
data.forEach(function(d) {
273+
d.disabled = true;
274+
});
275+
d.disabled = false;
276+
277+
state.disabled = data.map(function(d) { return !!d.disabled });
278+
dispatch.stateChange(state);
279+
chart.update();
280+
});
281+
270282
controls.dispatch.on('legendClick', function(d,i) {
271283
if (!d.disabled) return;
272284
controlsData = controlsData.map(function(s) {

‎src/models/scatterChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,19 @@ nv.models.scatterChart = function() {
391391
chart.update();
392392
});
393393

394+
legend.dispatch.on('legendDblclick', function(d) {
395+
//Double clicking should always enable current series, and disabled all others.
396+
data.forEach(function(d) {
397+
d.disabled = true;
398+
});
399+
d.disabled = false;
400+
401+
state.disabled = data.map(function(d) { return !!d.disabled });
402+
dispatch.stateChange(state);
403+
chart.update();
404+
});
405+
406+
394407
/*
395408
legend.dispatch.on('legendMouseover', function(d, i) {
396409
d.hover = true;

‎src/models/scatterPlusLineChart.js

+13
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,19 @@ nv.models.scatterPlusLineChart = function() {
399399
chart.update();
400400
});
401401

402+
legend.dispatch.on('legendDblclick', function(d) {
403+
//Double clicking should always enable current series, and disabled all others.
404+
data.forEach(function(d) {
405+
d.disabled = true;
406+
});
407+
d.disabled = false;
408+
409+
state.disabled = data.map(function(d) { return !!d.disabled });
410+
dispatch.stateChange(state);
411+
chart.update();
412+
});
413+
414+
402415
/*
403416
legend.dispatch.on('legendMouseover', function(d, i) {
404417
d.hover = true;

‎src/models/stackedAreaChart.js

+12
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,18 @@ nv.models.stackedAreaChart = function() {
287287
chart.update();
288288
});
289289

290+
legend.dispatch.on('legendDblclick', function(d) {
291+
//Double clicking should always enable current series, and disabled all others.
292+
data.forEach(function(d) {
293+
d.disabled = true;
294+
});
295+
d.disabled = false;
296+
297+
state.disabled = data.map(function(d) { return !!d.disabled });
298+
dispatch.stateChange(state);
299+
chart.update();
300+
});
301+
290302
controls.dispatch.on('legendClick', function(d,i) {
291303
if (!d.disabled) return;
292304

0 commit comments

Comments
 (0)
Please sign in to comment.