From 1f16b349d2a987ca7616343cc1d6dd4490cd8db4 Mon Sep 17 00:00:00 2001 From: Evert Timberg Date: Sat, 13 Jun 2015 09:55:43 -0400 Subject: [PATCH] Merge `Chart.scales` into `Chart.scaleService` to be consistent --- src/charts/chart.bar.js | 4 ++-- src/charts/chart.line.js | 4 ++-- src/charts/chart.polarArea.js | 2 +- src/charts/chart.radar.js | 2 +- src/core/core.scale.js | 27 ++++++++++++--------------- src/scales/scale.category.js | 5 +---- src/scales/scale.linear.js | 5 ++--- src/scales/scale.radialLinear.js | 2 +- 8 files changed, 22 insertions(+), 29 deletions(-) diff --git a/src/charts/chart.bar.js b/src/charts/chart.bar.js index 358a5fe01..e16161bb2 100644 --- a/src/charts/chart.bar.js +++ b/src/charts/chart.bar.js @@ -220,7 +220,7 @@ this.scales = {}; // Build the x axis. The line chart only supports a single x axis - var ScaleClass = Chart.scales.getScaleConstructor(this.options.scales.xAxes[0].type); + var ScaleClass = Chart.scaleService.getScaleConstructor(this.options.scales.xAxes[0].type); var xScale = new ScaleClass({ ctx: this.chart.ctx, options: this.options.scales.xAxes[0], @@ -231,7 +231,7 @@ // Build up all the y scales helpers.each(this.options.scales.yAxes, function(yAxisOptions) { - var ScaleClass = Chart.scales.getScaleConstructor(yAxisOptions.type); + var ScaleClass = Chart.scaleService.getScaleConstructor(yAxisOptions.type); var scale = new ScaleClass({ ctx: this.chart.ctx, options: yAxisOptions, diff --git a/src/charts/chart.line.js b/src/charts/chart.line.js index d68a9964e..779f78e3f 100644 --- a/src/charts/chart.line.js +++ b/src/charts/chart.line.js @@ -344,7 +344,7 @@ // Build the x axes helpers.each(this.options.scales.xAxes, function(xAxisOptions) { - var ScaleClass = Chart.scales.getScaleConstructor(xAxisOptions.type); + var ScaleClass = Chart.scaleService.getScaleConstructor(xAxisOptions.type); var scale = new ScaleClass({ ctx: this.chart.ctx, options: xAxisOptions, @@ -357,7 +357,7 @@ // Build the y axes helpers.each(this.options.scales.yAxes, function(yAxisOptions) { - var ScaleClass = Chart.scales.getScaleConstructor(yAxisOptions.type); + var ScaleClass = Chart.scaleService.getScaleConstructor(yAxisOptions.type); var scale = new ScaleClass({ ctx: this.chart.ctx, options: yAxisOptions, diff --git a/src/charts/chart.polarArea.js b/src/charts/chart.polarArea.js index 72f4b8f76..4131e6bc0 100644 --- a/src/charts/chart.polarArea.js +++ b/src/charts/chart.polarArea.js @@ -66,7 +66,7 @@ // Scale setup var self = this; - var ScaleClass = Chart.scales.getScaleConstructor(this.options.scale.type); + var ScaleClass = Chart.scaleService.getScaleConstructor(this.options.scale.type); this.scale = new ScaleClass({ options: this.options.scale, lineArc: true, diff --git a/src/charts/chart.radar.js b/src/charts/chart.radar.js index 2fcf88ba0..3d911070f 100644 --- a/src/charts/chart.radar.js +++ b/src/charts/chart.radar.js @@ -302,7 +302,7 @@ buildScale: function() { var self = this; - var ScaleConstructor = Chart.scales.getScaleConstructor(this.options.scale.type); + var ScaleConstructor = Chart.scaleService.getScaleConstructor(this.options.scale.type); this.scale = new ScaleConstructor({ options: this.options.scale, height: this.chart.height, diff --git a/src/core/core.scale.js b/src/core/core.scale.js index 3d56f6346..dc9a9a702 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -9,6 +9,18 @@ // a service where scales are registered with their respective charts so that changing the // scales does not require Chart.scaleService = { + // Scale registration object. Extensions can register new scale types (such as log or DB scales) and then + // use the new chart options to grab the correct scale + constructors: {}, + // Use a registration function so that we can move to an ES6 map when we no longer need to support + // old browsers + registerScaleType: function(type, scaleConstructor) { + this.constructors[type] = scaleConstructor; + }, + getScaleConstructor: function(type) { + return this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined; + }, + // The interesting function fitScalesForChart: function(chartInstance, width, height) { var xPadding = width > 30 ? 5 : 2; @@ -287,19 +299,4 @@ } } }; - - // Scale registration object. Extensions can register new scale types (such as log or DB scales) and then - // use the new chart options to grab the correct scale - Chart.scales = { - constructors: {}, - // Use a registration function so that we can move to an ES6 map when we no longer need to support - // old browsers - registerScaleType: function(type, scaleConstructor) { - this.constructors[type] = scaleConstructor; - }, - getScaleConstructor: function(type) { - return this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined; - } - }; - }).call(this); diff --git a/src/scales/scale.category.js b/src/scales/scale.category.js index 9ce5e00f4..7ed54613e 100644 --- a/src/scales/scale.category.js +++ b/src/scales/scale.category.js @@ -233,8 +233,5 @@ } } }); - Chart.scales.registerScaleType("category", DatasetScale); - - - + Chart.scaleService.registerScaleType("category", DatasetScale); }).call(this); diff --git a/src/scales/scale.linear.js b/src/scales/scale.linear.js index 11e1bdfc2..fd4e6d800 100644 --- a/src/scales/scale.linear.js +++ b/src/scales/scale.linear.js @@ -523,7 +523,6 @@ } } }); - Chart.scales.registerScaleType("linear", LinearScale); - - + Chart.scaleService.registerScaleType("linear", LinearScale); + }).call(this); diff --git a/src/scales/scale.radialLinear.js b/src/scales/scale.radialLinear.js index 7bcda29c9..9d8e30eff 100644 --- a/src/scales/scale.radialLinear.js +++ b/src/scales/scale.radialLinear.js @@ -374,7 +374,7 @@ } } }); - Chart.scales.registerScaleType("radialLinear", LinearRadialScale); + Chart.scaleService.registerScaleType("radialLinear", LinearRadialScale); }).call(this); -- 2.47.3