X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph.js;h=66432f7f2a7773e9082d21daa3ecc30603c9fa5e;hb=3c10a0f3519355ee651d04bf2972bd31298eff18;hp=74d6ce55330fc01f09853d0b64a0910a254f3457;hpb=758a629f806fa73483f730fb343013acd0ace078;p=dygraphs.git diff --git a/dygraph.js b/dygraph.js index 74d6ce5..66432f7 100644 --- a/dygraph.js +++ b/dygraph.js @@ -414,10 +414,10 @@ Dygraph.prototype.__init__ = function(div, file, attrs) { * option is also specified). */ Dygraph.prototype.isZoomed = function(axis) { - if (axis === null) return this.zoomed_x_ || this.zoomed_y_; + if (axis == null) return this.zoomed_x_ || this.zoomed_y_; if (axis === 'x') return this.zoomed_x_; if (axis === 'y') return this.zoomed_y_; - throw "axis parameter to Dygraph.isZoomed must be missing, 'x' or 'y'."; + throw "axis parameter is [" + axis + "] must be null, 'x' or 'y'."; }; /** @@ -2051,10 +2051,10 @@ Dygraph.prototype.renderGraph_ = function(is_initial_draw, clearSelection) { this.canvas_.getContext('2d').clearRect(0, 0, this.canvas_.width, this.canvas_.height); - if (is_initial_draw) { - // Generate a static legend before any particular point is selected. - this.setLegendHTML_(); - } else { + // Generate a static legend before any particular point is selected. + this.setLegendHTML_(); + + if (!is_initial_draw) { if (clearSelection) { if (typeof(this.selPoints_) !== 'undefined' && this.selPoints_.length) { // We should select the point nearest the page x/y here, but it's easier @@ -2654,9 +2654,9 @@ Dygraph.prototype.parseCSV_ = function(data) { this.parseFloat_(vals[1], i, line), this.parseFloat_(vals[2], i, line) ]; } else { - this.warning('When using customBars, values must be either blank ' + - 'or "low;center;high" tuples (got "' + val + - '" on line ' + (1+i)); + this.warn('When using customBars, values must be either blank ' + + 'or "low;center;high" tuples (got "' + val + + '" on line ' + (1+i)); } } } @@ -2897,21 +2897,25 @@ Dygraph.prototype.parseDataTable_ = function(data) { * @private */ Dygraph.prototype.start_ = function() { - if (typeof this.file_ == 'function') { - // CSV string. Pretend we got it via XHR. - this.loadedEvent_(this.file_()); - } else if (Dygraph.isArrayLike(this.file_)) { - this.rawData_ = this.parseArray_(this.file_); + var data = this.file_; + + // Functions can return references of all other types. + if (typeof data == 'function') { + data = data(); + } + + if (Dygraph.isArrayLike(data)) { + this.rawData_ = this.parseArray_(data); this.predraw_(); - } else if (typeof this.file_ == 'object' && - typeof this.file_.getColumnRange == 'function') { + } else if (typeof data == 'object' && + typeof data.getColumnRange == 'function') { // must be a DataTable from gviz. - this.parseDataTable_(this.file_); + this.parseDataTable_(data); this.predraw_(); - } else if (typeof this.file_ == 'string') { + } else if (typeof data == 'string') { // Heuristic: a newline means it's CSV data. Otherwise it's an URL. - if (this.file_.indexOf('\n') >= 0) { - this.loadedEvent_(this.file_); + if (data.indexOf('\n') >= 0) { + this.loadedEvent_(data); } else { var req = new XMLHttpRequest(); var caller = this; @@ -2924,11 +2928,11 @@ Dygraph.prototype.start_ = function() { } }; - req.open("GET", this.file_, true); + req.open("GET", data, true); req.send(null); } } else { - this.error("Unknown data format: " + (typeof this.file_)); + this.error("Unknown data format: " + (typeof data)); } };