Make dygraph-options.js warning-free under Closure Compiler
authorLucas Bergman <slb@google.com>
Thu, 7 Mar 2013 21:30:18 +0000 (15:30 -0600)
committerLucas Bergman <lucas@bergmans.us>
Tue, 2 Apr 2013 15:37:55 +0000 (10:37 -0500)
closure-todo.txt
dygraph-externs.js
dygraph-options.js

index c9d42b7..5c61495 100644 (file)
@@ -12,7 +12,7 @@ Core:
 - dygraph-canvas.js
 - dygraph-interaction-model.js
 - dygraph-layout.js
-- dygraph-options.js
+x dygraph-options.js
 - dygraph-range-selector.js
 - dygraph.js
 x dygraph-gviz.js
@@ -32,6 +32,6 @@ Plugins:
 
 Here's a command that can be used to build dygraphs using the closure
 compiler:
-java -jar ../../closure-compiler-read-only/build/compiler.jar --js=dygraph-utils.js --js=dashed-canvas.js --js=dygraph-options-reference.js --js=dygraph-tickers.js --js=dygraph-gviz.js --js_output_file=/tmp/out.js --compilation_level ADVANCED_OPTIMIZATIONS --warning_level VERBOSE --externs dygraph-externs.js
+java -jar ../../closure-compiler-read-only/build/compiler.jar --js=dygraph-utils.js --js=dashed-canvas.js --js=dygraph-options-reference.js --js=dygraph-tickers.js --js=dygraph-gviz.js --js=dygraph-options.js --js_output_file=/tmp/out.js --compilation_level ADVANCED_OPTIMIZATIONS --warning_level VERBOSE --externs dygraph-externs.js
 
 As each file is closurized, it can be added as a "--js" parameter.
index 6e487fd..ed5de4c 100644 (file)
@@ -72,13 +72,22 @@ function DygraphLayout() {}
  */
 DygraphLayout.prototype.datasets;
 
+// TODO: DygraphOptions should not reach inside Dygraph private data like this.
+/** @type {Object} */
+Dygraph.prototype.attrs_;
+/** @type {Object} */
+Dygraph.prototype.user_attrs_;
+
 /**
  * @type {DygraphLayout}
  */
 Dygraph.prototype.layout_;
 
+/** @type {function(): string} */
+Dygraph.prototype.getHighlightSeries;
+
 /** @type {Array.<{elem:Element,type:string,fn:function(!Event):(boolean|undefined|null)}>} */
 Dygraph.prototype.registeredEvents_;
 
-/** @type {Object} */
+/** @type {{axes: Object}} */
 Dygraph.DEFAULT_ATTRS;
index f1828d8..5fa8f3e 100644 (file)
@@ -34,13 +34,17 @@ var DygraphOptions = (function() {
  * if labels are not yet available, since those drive details of the per-series
  * and per-axis options.
  *
- * @param {Dyraph} dygraph The chart to which these options belong.
+ * @param {Dygraph} dygraph The chart to which these options belong.
  * @constructor
  */
 var DygraphOptions = function(dygraph) {
   this.dygraph_ = dygraph;
+
+  /** @type {Array.<{options: Object, series: string}>} @private */
   this.yAxes_ = [];
-  this.xAxis_ = {};
+  /** @type {{options: Object}} @private */
+  this.xAxis_ = {options: {}};
+  /** @type {Object} @private */
   this.series_ = {};
 
   // Once these two objects are initialized, you can call get();
@@ -64,6 +68,10 @@ DygraphOptions.AXIS_STRING_MAPPINGS_ = {
   'Y2' : 1
 };
 
+/**
+ * @param {string|number} axis
+ * @private
+ */
 DygraphOptions.axisToIndex_ = function(axis) {
   if (typeof(axis) == "string") {
     if (DygraphOptions.AXIS_STRING_MAPPINGS_.hasOwnProperty(axis)) {
@@ -77,10 +85,6 @@ DygraphOptions.axisToIndex_ = function(axis) {
     }
     throw "Dygraphs only supports two y-axes, indexed from 0-1.";
   }
-  if (typeof(axis) == "object") {
-    throw "Using objects for axis specification " +
-        "is not supported inside the 'series' option.";
-  }
   if (axis) {
     throw "Unknown axis : " + axis;
   }
@@ -293,7 +297,7 @@ DygraphOptions.prototype.getForAxis = function(name, axis) {
  */
 DygraphOptions.prototype.getForSeries = function(name, series) {
   // Honors indexes as series.
-  if (series === this.dygraph_.highlightSet_) {
+  if (series === this.dygraph_.getHighlightSeries()) {
     if (this.highlightSeries_.hasOwnProperty(name)) {
       return this.highlightSeries_[name];
     }
@@ -314,7 +318,7 @@ DygraphOptions.prototype.getForSeries = function(name, series) {
 
 /**
  * Returns the number of y-axes on the chart.
- * @return {Number} the number of axes.
+ * @return {number} the number of axes.
  */
 DygraphOptions.prototype.numAxes = function() {
   return this.yAxes_.length;