From a98a123b433cdcff3e65f11022047885e810e42f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Mon, 24 Oct 2016 12:40:53 -0400 Subject: [PATCH 1/2] plots: use trace gd.data index to determine dflt trace name - ... instead of gd._fullData index - so that e.g. traces following one-to-many transform are listed as trace 1, ... --- src/plots/plots.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plots/plots.js b/src/plots/plots.js index f8c52b56624..53280e796dc 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -612,7 +612,7 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) { for(var i = 0; i < dataIn.length; i++) { var trace = dataIn[i], - fullTrace = plots.supplyTraceDefaults(trace, cnt, fullLayout); + fullTrace = plots.supplyTraceDefaults(trace, cnt, fullLayout, i); fullTrace.index = i; fullTrace._input = trace; @@ -623,7 +623,7 @@ plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) { for(var j = 0; j < expandedTraces.length; j++) { var expandedTrace = expandedTraces[j], - fullExpandedTrace = plots.supplyTraceDefaults(expandedTrace, cnt, fullLayout); + fullExpandedTrace = plots.supplyTraceDefaults(expandedTrace, cnt, fullLayout, i); // mutate uid here using parent uid and expanded index // to promote consistency between update calls @@ -722,9 +722,9 @@ plots.supplyFrameDefaults = function(frameIn) { return frameOut; }; -plots.supplyTraceDefaults = function(traceIn, traceIndex, layout) { +plots.supplyTraceDefaults = function(traceIn, traceOutIndex, layout, traceInIndex) { var traceOut = {}, - defaultColor = Color.defaults[traceIndex % Color.defaults.length]; + defaultColor = Color.defaults[traceOutIndex % Color.defaults.length]; function coerce(attr, dflt) { return Lib.coerce(traceIn, traceOut, plots.attributes, attr, dflt); @@ -741,7 +741,7 @@ plots.supplyTraceDefaults = function(traceIn, traceIndex, layout) { coerce('type'); coerce('uid'); - coerce('name', 'trace ' + traceIndex); + coerce('name', 'trace ' + traceInIndex); // coerce subplot attributes of all registered subplot types var subplotTypes = Object.keys(subplotsRegistry); From 4d10983986025a1a4c3649e1874019459ba03edf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Mon, 24 Oct 2016 13:45:59 -0400 Subject: [PATCH 2/2] test: add case for finance chart dflt trace name --- test/jasmine/tests/finance_test.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/test/jasmine/tests/finance_test.js b/test/jasmine/tests/finance_test.js index 3cf908235f9..504dc835982 100644 --- a/test/jasmine/tests/finance_test.js +++ b/test/jasmine/tests/finance_test.js @@ -220,6 +220,35 @@ describe('finance charts defaults:', function() { ]); }); + it('trace *name* default should make reference to user data trace indices', function() { + var trace0 = Lib.extendDeep({}, mock0, { + type: 'ohlc' + }); + + var trace1 = { type: 'scatter' }; + + var trace2 = Lib.extendDeep({}, mock1, { + type: 'candlestick', + }); + + var trace3 = { type: 'bar' }; + + var out = _supply([trace0, trace1, trace2, trace3]); + + var names = out._fullData.map(function(fullTrace) { + return fullTrace.name; + }); + + expect(names).toEqual([ + 'trace 0 - increasing', + 'trace 0 - decreasing', + 'trace 1', + 'trace 2 - increasing', + 'trace 2 - decreasing', + 'trace 3' + ]); + }); + it('trace-wide styling should set default for corresponding per-direction styling', function() { function assertLine(cont, width, dash) { expect(cont.line.width).toEqual(width);