function MButtons(graphs, params, aggsliders, scales, stackButtonElem,
    stackButtonOppositeElem, shadowSliderElem, metricSearchInputBoxElem,
    buttonPressedClassName, greyedOutClassName, metricSelectorIdPrefix) {
  this.graphs_ = graphs;
  this.params_ = params;
  this.aggsliders_ = aggsliders;  // For lineSelect and shadowSelect.
  this.scales_ = scales;  // For metricXScale.
  this.checkAllButtonElem = null;
  this.stackButtonElem = $(stackButtonElem);
  this.stackButtonOppositeElem = $(stackButtonOppositeElem);
  this.shadowSliderElem = $(shadowSliderElem);
  this.metricSearchInputBoxElem = $(metricSearchInputBoxElem);
  this.buttonPressedClassName = buttonPressedClassName;
  this.greyedOutClassName = greyedOutClassName;
  this.metricSelectorIdPrefix = metricSelectorIdPrefix;
}
/**
 * @constructor
 * @param {Graphs} graphs A graphs manipulation object.
 * @param {Params} params A URL parameter storage and manipulation object.
 * @param {AggSliders} aggsliders An aggregate slider widget object.
 * @param {Scales} scales A scale button handler object.
 * @param {jQuerySelector} stackButtonElem First button in the stacked/separated
 *   button pair.
 * @param {jQuerySelector} stackButtonOppositeElem Second button in the
 *   stacked/separated button pair.
 * @param {jQuerySelector} shadowSliderElem The shadow slider element.  This is
 *   greyed-out when we select stacked graphs.
 * @param {jQuerySelector} metricSearchInputBoxElem The metric search box.
 * @param {string} buttonPressedClassName The class name associated with pressed
 *   button state.
 * @param {string} greyedOutClassName The class name associated with the
 *   greyed-out state.
 * @param {string} metricSelectorIdPrefix The id prefix for the metric buttons.
 */
@constructor
@param {Graphs} graphs A graphs manipulation object.
@param {Params} params A URL parameter storage and manipulation object.
@param {AggSliders} aggsliders An aggregate slider widget object.
@param {Scales} scales A scale button handler object.
@param {jQuerySelector} stackButtonElem First button in the stacked/separated
button pair.
@param {jQuerySelector} stackButtonOppositeElem Second button in the
stacked/separated button pair.
@param {jQuerySelector} shadowSliderElem The shadow slider element.  This is
greyed-out when we select stacked graphs.
@param {jQuerySelector} metricSearchInputBoxElem The metric search box.
@param {string} buttonPressedClassName The class name associated with pressed
button state.
@param {string} greyedOutClassName The class name associated with the
greyed-out state.
@param {string} metricSelectorIdPrefix The id prefix for the metric buttons.
@constructor @param { Graphs } graphs A graphs manipulation object . @param { Params } params A URL parameter storage and manipulation object . @param { AggSliders } aggsliders An aggregate slider widget object . @param { Scales } scales A scale button handler object . @param { jQuerySelector } stackButtonElem First button in the stacked / separated button pair . @param { jQuerySelector } stackButtonOppositeElem Second button in the stacked / separated button pair . @param { jQuerySelector } shadowSliderElem The shadow slider element . This is greyed - out when we select stacked graphs . @param { jQuerySelector } metricSearchInputBoxElem The metric search box . @param { string } buttonPressedClassName The class name associated with pressed button state . @param { string } greyedOutClassName The class name associated with the greyed - out state . @param { string } metricSelectorIdPrefix The id prefix for the metric buttons .
function MButtons(graphs, params, aggsliders, scales, stackButtonElem,
    stackButtonOppositeElem, shadowSliderElem, metricSearchInputBoxElem,
    buttonPressedClassName, greyedOutClassName, metricSelectorIdPrefix) {
  this.graphs_ = graphs;
  this.params_ = params;
  this.aggsliders_ = aggsliders;  
  this.scales_ = scales;  
  this.checkAllButtonElem = null;
  this.stackButtonElem = $(stackButtonElem);
  this.stackButtonOppositeElem = $(stackButtonOppositeElem);
  this.shadowSliderElem = $(shadowSliderElem);
  this.metricSearchInputBoxElem = $(metricSearchInputBoxElem);
  this.buttonPressedClassName = buttonPressedClassName;
  this.greyedOutClassName = greyedOutClassName;
  this.metricSelectorIdPrefix = metricSelectorIdPrefix;
}
function MButtons ( graphs , params , aggsliders , scales , stackButtonElem , stackButtonOppositeElem , shadowSliderElem , metricSearchInputBoxElem , buttonPressedClassName , greyedOutClassName , metricSelectorIdPrefix ) { this . graphs_ = graphs ; this . params_ = params ; this . aggsliders_ = aggsliders ; this . scales_ = scales ; this . checkAllButtonElem = null ; this . stackButtonElem = $ ( stackButtonElem ) ; this . stackButtonOppositeElem = $ ( stackButtonOppositeElem ) ; this . shadowSliderElem = $ ( shadowSliderElem ) ; this . metricSearchInputBoxElem = $ ( metricSearchInputBoxElem ) ; this . buttonPressedClassName = buttonPressedClassName ; this . greyedOutClassName = greyedOutClassName ; this . metricSelectorIdPrefix = metricSelectorIdPrefix ; }
@constructor
 @param {Graphs} graphs A graphs manipulation object.
@constructor @param { Graphs } graphs A graphs manipulation object .
// For lineSelect and shadowSelect. // For metricXScale.