Landing!
authorDan Vanderkam <dan@dygraphs.com>
Fri, 6 Jul 2012 04:14:26 +0000 (21:14 -0700)
committerDan Vanderkam <dan@dygraphs.com>
Fri, 6 Jul 2012 04:14:26 +0000 (21:14 -0700)
dygraph-canvas.js
dygraph.js
plugins/annotations.js
plugins/axes.js
plugins/chart-labels.js
plugins/grid.js
plugins/legend.js

index 50ff486..3600b78 100644 (file)
@@ -145,14 +145,6 @@ DygraphCanvasRenderer.isSupported = function(canvasName) {
 };
 
 /**
- * @param { [String] } colors Array of color strings. Should have one entry for
- * each series to be rendered.
- */
-DygraphCanvasRenderer.prototype.setColors = function(colors) {
-  this.colorScheme_ = colors;
-};
-
-/**
  * This method is responsible for drawing everything on the chart, including
  * lines, error bars, fills and axes.
  * It is called immediately after clear() on every frame, including during pans
@@ -160,19 +152,6 @@ DygraphCanvasRenderer.prototype.setColors = function(colors) {
  * @private
  */
 DygraphCanvasRenderer.prototype.render = function() {
-  // Draw the new X/Y grid. Lines appear crisper when pixels are rounded to
-  // half-integers. This prevents them from drawing in two rows/cols.
-  var ctx = this.elementContext;
-  function halfUp(x)  { return Math.round(x) + 0.5; }
-  function halfDown(y){ return Math.round(y) - 0.5; }
-
-  if (this.attr_('underlayCallback')) {
-    // NOTE: we pass the dygraph object to this callback twice to avoid breaking
-    // users who expect a deprecated form of this callback.
-    this.attr_('underlayCallback')(ctx, this.area, this.dygraph_, this.dygraph_);
-  }
-
-  // Do the ordinary rendering, as before
   this._renderLineChart();
 };
 
index 4f6b41b..bd3a4cc 100644 (file)
@@ -1090,8 +1090,6 @@ Dygraph.prototype.setColors_ = function() {
       this.colorsMap_[labels[1 + i]] = colorStr;
     }
   }
-
-  this.plotter_.setColors(this.colors_);
 };
 
 /**
@@ -2341,11 +2339,20 @@ Dygraph.prototype.renderGraph_ = function(is_initial_draw) {
   this.cascadeEvents_('clearChart');
   this.plotter_.clear();
 
-  this.cascadeEvents_('drawChart', {
+  if (this.attr_('underlayCallback')) {
+    // NOTE: we pass the dygraph object to this callback twice to avoid breaking
+    // users who expect a deprecated form of this callback.
+    this.attr_('underlayCallback')(
+        this.hidden_ctx_, this.layout_.getPlotArea(), this, this);
+  }
+
+  var e = {
     canvas: this.hidden_,
     drawingContext: this.hidden_ctx_,
-  });
+  };
+  this.cascadeEvents_('willDrawChart', e);
   this.plotter_.render();
+  this.cascadeEvents_('didDrawChart', e);
 
   // TODO(danvk): is this a performance bottleneck when panning?
   // The interaction canvas should already be empty in that situation.
index 7be7966..d47f8c7 100644 (file)
@@ -30,7 +30,7 @@ annotations.prototype.toString = function() {
 annotations.prototype.activate = function(g) {
   return {
     clearChart: this.clearChart,
-    drawChart: this.drawChart
+    didDrawChart: this.didDrawChart
   };
 };
 
@@ -47,7 +47,7 @@ annotations.prototype.clearChart = function(e) {
   this.detachLabels();
 };
 
-annotations.prototype.drawChart = function(e) {
+annotations.prototype.didDrawChart = function(e) {
   var g = e.dygraph;
 
   // Early out in the (common) case of zero annotations.
index 940fcec..81068fe 100644 (file)
@@ -33,7 +33,7 @@ axes.prototype.activate = function(g) {
   return {
     layout: this.layout,
     clearChart: this.clearChart,
-    drawChart: this.drawChart
+    willDrawChart: this.willDrawChart
   };
 };
 
@@ -84,7 +84,7 @@ axes.prototype.clearChart = function(e) {
   this.detachLabels();
 }
 
-axes.prototype.drawChart = function(e) {
+axes.prototype.willDrawChart = function(e) {
   var g = e.dygraph;
   if (!g.getOption('drawXAxis') && !g.getOption('drawYAxis')) return;
   
index 5e544dc..af12bcb 100644 (file)
@@ -23,7 +23,7 @@ chart_labels.prototype.activate = function(g) {
   return {
     layout: this.layout,
     // clearChart: this.clearChart,
-    drawChart: this.drawChart
+    didDrawChart: this.didDrawChart
   };
 };
 
@@ -169,7 +169,7 @@ chart_labels.prototype.layout = function(e) {
   }
 };
 
-chart_labels.prototype.drawChart = function(e) {
+chart_labels.prototype.didDrawChart = function(e) {
   var g = e.dygraph;
   if (this.title_div_) {
     this.title_div_.children[0].innerHTML = g.getOption('title');
index 3ccc2ae..6d59406 100644 (file)
@@ -30,11 +30,11 @@ grid.prototype.toString = function() {
 
 grid.prototype.activate = function(g) {
   return {
-    drawChart: this.drawChart
+    willDrawChart: this.willDrawChart
   };
 };
 
-grid.prototype.drawChart = function(e) {
+grid.prototype.willDrawChart = function(e) {
   // Draw the new X/Y grid. Lines appear crisper when pixels are rounded to
   // half-integers. This prevents them from drawing in two rows/cols.
   var g = e.dygraph;
index 5f7ac7e..721812c 100644 (file)
@@ -100,7 +100,7 @@ legend.prototype.activate = function(g) {
     deselect: this.deselect,
     // TODO(danvk): rethink the name "predraw" before we commit to it in any API.
     predraw: this.predraw,
-    drawChart: this.drawChart
+    didDrawChart: this.didDrawChart
   };
 };
 
@@ -132,7 +132,7 @@ legend.prototype.deselect = function(e) {
   this.legend_div_.innerHTML = html;
 };
 
-legend.prototype.drawChart = function(e) {
+legend.prototype.didDrawChart = function(e) {
   this.deselect(e);
 }