using externs instead of quoting does not work for plugin handler mapping
authorDan Vanderkam <danvdk@gmail.com>
Sun, 1 Sep 2013 19:43:40 +0000 (15:43 -0400)
committerDan Vanderkam <danvdk@gmail.com>
Sun, 1 Sep 2013 19:43:40 +0000 (15:43 -0400)
dygraph-externs.js
plugins/axes.js
plugins/grid.js

index 85a535d..4ec5846 100644 (file)
@@ -143,14 +143,27 @@ var DygraphInteractionContext;
 
 
 /**
- * @constructor
+ * @typedef {{
+ *   clearChart:    (function(Object)|undefined),
+ *   deselect:      (function(Object)|undefined),
+ *   didDrawChart:  (function(Object)|undefined),
+ *   layout:        (function(Object)|undefined),
+ *   predraw:       (function(Object)|undefined),
+ *   select:        (function(Object)|undefined),
+ *   willDrawChart: (function(Object)|undefined)
+ * }}
+ */
+var DygraphPluginHandlers;
+
+
+/**
+ * @interface
  */
 var DygraphPluginType;
 
 /**
  * @param {!Dygraph} dygraph
- * TODO(danvk): be more specific than Object
- * @return {Object.<function(Object)>} Mapping from event -> callback.
+ * @return {DygraphPluginHandlers} Mapping from event -> callback.
  */
 DygraphPluginType.prototype.activate = function(dygraph) {};
 
index 2ff2400..88ac546 100644 (file)
@@ -31,16 +31,20 @@ These too. What is the difference between axisLablelWidth and {x,y}AxisLabelWidt
  * Draws the axes. This includes the labels on the x- and y-axes, as well
  * as the tick marks on the axes.
  * It does _not_ draw the grid lines which span the entire chart.
+ * @constructor
+ * @implements {DygraphPluginType}
  */
 var axes = function() {
   this.xlabels_ = [];
   this.ylabels_ = [];
 };
 
+/** @override */
 axes.prototype.toString = function() {
   return "Axes Plugin";
 };
 
+/** @override */
 axes.prototype.activate = function(g) {
   return {
     'layout': this.layout,
@@ -317,5 +321,9 @@ axes.prototype.willDrawChart = function(e) {
   context.restore();
 };
 
+/** @override */
+axes.prototype.destroy = function() {
+};
+
 return axes;
 })();
index 392aec6..e609a62 100644 (file)
@@ -22,15 +22,18 @@ Current bits of jankiness:
  * Draws the gridlines, i.e. the gray horizontal & vertical lines running the
  * length of the chart.
  *
+ * @implements {DygraphPluginType}
  * @constructor
  */
 var grid = function() {
 };
 
+/** @override */
 grid.prototype.toString = function() {
   return "Gridline Plugin";
 };
 
+/** @override */
 grid.prototype.activate = function(g) {
   return {
     'willDrawChart': this.willDrawChart
@@ -116,6 +119,7 @@ grid.prototype.willDrawChart = function(e) {
   }
 };
 
+/** @override */
 grid.prototype.destroy = function() {
 };