g.setSelection(0);
assertEquals([
// num or millis, opts, series, dygraph, row, col
- [ 'x', 0, 'fn', 'x', g],
- [ 'y', 1, 'fn', 'y1', g],
- ['y2', 2, 'fn', 'y2', g]
+ [ 'x', 0, 'fn', 'x', g, 0, 0],
+ [ 'y', 1, 'fn', 'y1', g, 0, 1],
+ ['y2', 2, 'fn', 'y2', g, 0, 2]
+ ], calls);
+
+ calls = [];
+ g.setSelection(1);
+ assertEquals([
+ [ 'x', 1, 'fn', 'x', g, 1, 0],
+ [ 'y', 3, 'fn', 'y1', g, 1, 1],
+ ['y2', 4, 'fn', 'y2', g, 1, 2]
], calls);
};
legend.prototype.select = function(e) {
var xValue = e.selectedX;
var points = e.selectedPoints;
+ var row = e.selectedRow;
var legendMode = e.dygraph.getOption('legend');
if (legendMode === 'never') {
this.legend_div_.style.top = topLegend + "px";
}
- var html = legend.generateLegendHTML(e.dygraph, xValue, points, this.one_em_width_);
+ var html = legend.generateLegendHTML(e.dygraph, xValue, points, this.one_em_width_, row);
this.legend_div_.innerHTML = html;
this.legend_div_.style.display = '';
};
var oneEmWidth = calculateEmWidthInDiv(this.legend_div_);
this.one_em_width_ = oneEmWidth;
- var html = legend.generateLegendHTML(e.dygraph, undefined, undefined, oneEmWidth);
+ var html = legend.generateLegendHTML(e.dygraph, undefined, undefined, oneEmWidth, null);
this.legend_div_.innerHTML = html;
};
* Generates HTML for the legend which is displayed when hovering over the
* chart. If no selected points are specified, a default legend is returned
* (this may just be the empty string).
- * @param { Number } [x] The x-value of the selected points.
- * @param { [Object] } [sel_points] List of selected points for the given
- * x-value. Should have properties like 'name', 'yval' and 'canvasy'.
- * @param { Number } [oneEmWidth] The pixel width for 1em in the legend. Only
- * relevant when displaying a legend with no selection (i.e. {legend:
- * 'always'}) and with dashed lines.
+ * @param {number} x The x-value of the selected points.
+ * @param {Object} sel_points List of selected points for the given
+ * x-value. Should have properties like 'name', 'yval' and 'canvasy'.
+ * @param {number} oneEmWidth The pixel width for 1em in the legend. Only
+ * relevant when displaying a legend with no selection (i.e. {legend:
+ * 'always'}) and with dashed lines.
+ * @param {number} row The selected row index.
*/
-legend.generateLegendHTML = function(g, x, sel_points, oneEmWidth) {
+legend.generateLegendHTML = function(g, x, sel_points, oneEmWidth, row) {
// TODO(danvk): deprecate this option in place of {legend: 'never'}
if (g.getOption('showLabelsOnHighlight') !== true) return '';
// TODO(danvk): remove this use of a private API
var xOptView = g.optionsViewForAxis_('x');
var xvf = xOptView('valueFormatter');
- html = xvf(x, xOptView, labels[0], g);
+ html = xvf(x, xOptView, labels[0], g, row, 0);
if (html !== '') {
html += ':';
}
var series = g.getPropertiesForSeries(pt.name);
var yOptView = yOptViews[series.axis - 1];
var fmtFunc = yOptView('valueFormatter');
- var yval = fmtFunc(pt.yval, yOptView, pt.name, g);
+ var yval = fmtFunc(pt.yval, yOptView, pt.name, g, row, labels.indexOf(pt.name));
var cls = (pt.name == highlightSeries) ? " class='highlight'" : "";