]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Controller function organization
authorTanner Linsley <tannerlinsley@gmail.com>
Mon, 15 Jun 2015 01:42:39 +0000 (19:42 -0600)
committerTanner Linsley <tannerlinsley@gmail.com>
Mon, 15 Jun 2015 01:42:39 +0000 (19:42 -0600)
gulpfile.js
samples/bar.html
src/charts/chart.bar.js [moved from src/_charts/chart.bar.js with 100% similarity]
src/charts/chart.doughnut.js [moved from src/_charts/chart.doughnut.js with 100% similarity]
src/charts/chart.line.js [moved from src/_charts/chart.line.js with 100% similarity]
src/charts/chart.polarArea.js [moved from src/_charts/chart.polarArea.js with 100% similarity]
src/charts/chart.radar.js [moved from src/_charts/chart.radar.js with 100% similarity]
src/charts/chart.scatter.js [moved from src/_charts/chart.scatter.js with 100% similarity]
src/core/core.controller.js

index 9ce3dc3f4bb2535dccd589ae39ed1b98f18efc10..70d58c0083cec641787e5d76513683eefb35d18d 100644 (file)
@@ -32,7 +32,7 @@ gulp.task('build', function() {
             './src/controllers/**',
             './src/scales/**',
             './src/elements/**',
-            './src/charts/**',
+            './src/charts/chart.bar.js',
             './node_modules/color/dist/color.min.js'
         ],
         isCustom = !!(util.env.types),
index 5e0018d8de28746dd4a5023324130b6f77cd446a..812b2e0d79207b9d8b7cd8569a5c8250c2913594 100644 (file)
@@ -40,6 +40,7 @@
     window.onload = function() {
         var ctx = document.getElementById("canvas").getContext("2d");
         window.myBar = new Chart(ctx, {
+            type: 'bar',
             data: barChartData,
             options: {
                 responsive: true,
index 74e73d9f4952380be041ec420f9e2af6081f22ae..dd2a023405f03b16d8803f02cf44a328d745f767 100644 (file)
 
                        this.bindEvents();
                        this.buildScales();
-
-                       Chart.scaleService.fitScalesForChart(this, this.chart.width, this.chart.height);
-
                        this.resetElements();
-
                        this.initToolTip();
-
                        this.update();
 
                        return this;
 
                                this.scales[scale.id] = scale;
                        }, this);
+
+                       Chart.scaleService.fitScalesForChart(this, this.chart.width, this.chart.height);
                },
 
                resetElements: function resetElements() {
                },
                update: function update(animationDuration) {
                        // This will loop through any data and do the appropriate element update for the type
-                       //this.render(animationDuration);
+                       Chart.scaleService.fitScalesForChart(this, this.chart.width, this.chart.height);
+                       this.render(animationDuration);
                },
 
                render: function render(duration) {
                        return elementsArray.length ? elementsArray : [];
                },
 
+               getDatasetAtEvent: function getDatasetAtEvent(e) {
+
+                       var elementsArray = [],
+                               eventPosition = helpers.getRelativePosition(e),
+                               datasetIterator = function(dataset) {
+                                       elementsArray.push(dataset.metaData[elementIndex]);
+                               },
+                               elementIndex;
+
+                       for (var datasetIndex = 0; datasetIndex < this.data.datasets.length; datasetIndex++) {
+                               for (elementIndex = 0; elementIndex < this.data.datasets[datasetIndex].metaData.length; elementIndex++) {
+                                       if (this.data.datasets[datasetIndex].metaData[elementIndex].inGroupRange(eventPosition.x, eventPosition.y)) {
+                                               helpers.each(this.data.datasets, datasetIterator);
+                                       }
+                               }
+                       }
+
+                       return elementsArray.length ? elementsArray : [];
+               },
+
                generateLegend: function generateLegend() {
                        return template(this.options.legendTemplate, this);
                },
                toBase64Image: function toBase64Image() {
                        return this.chart.canvas.toDataURL.apply(this.chart.canvas, arguments);
                },
+
+               initToolTip: function initToolTip() {
+                       this.tooltip = new Chart.Tooltip({
+                               _chart: this.chart,
+                               _data: this.data,
+                               _options: this.options,
+                       }, this);
+               },
+
                bindEvents: function bindEvents() {
                        helpers.bindEvents(this, this.options.events, function(evt) {
-                               // this will be the chart instance
-                               this.canvasController.eventHandler(evt);
+                               this.eventHandler(evt);
                        });
                },
-
                eventHandler: function eventHandler(e) {
                        this.lastActive = this.lastActive || [];
 
                        this.lastActive = this.active;
                        return this;
                },
-
-               initToolTip: function initToolTip() {
-                       this.tooltip = new Chart.Tooltip({
-                               _chart: this.chart,
-                               _data: this.data,
-                               _options: this.options,
-                       }, this);
-               },
-
-
-               update: function update() {
-                       Chart.scaleService.fitScalesForChart(this, this.chart.width, this.chart.height);
-                       this.elementController.updateElements();
-               }
        });
 
 }).call(this);