Version 3.18.1

APIs

  • Begin typing in the search box above to see results.
Show:

File: charts/js/RangeSeries.js

 /**
 * Provides functionality for creating a range series.
 *
 * @module charts
 * @submodule series-range
 */
 
 /**
 * An abstract class for creating range series instances.
 * RangeSeries is used by the following classes:
 * <ul>
 * <li>{{#crossLink "CandlestickSeries"}}{{/crossLink}}</li>
 * <li>{{#crossLink "OHLCSeries"}}{{/crossLink}}</li>
 * </ul>
 *
 * @class RangeSeries
 * @extends CartesianSeries
 * @constructor
 * @param {Object} config (optional) Configuration parameters.
 * @submodule series-range
 */
 function RangeSeries()
 {
 RangeSeries.superclass.constructor.apply(this, arguments);
 }
 
 RangeSeries.NAME = "rangeSeries";
 
 RangeSeries.ATTRS = {
 /**
 * Read-only attribute indicating the type of series.
 *
 * @attribute type
 * @type String
 * @default range
 */
 type: {
 value: "range"
 },
 
 /**
 * Values to be used for open, high, low and close keys.
 *
 * @attribute ohlc
 * @type Object
 */
 ohlckeys: {
 valueFn: function() {
 return {
 open: "open",
 high: "high",
 low: "low",
 close: "close"
 };
 }
 }
 };
 
 Y.extend(RangeSeries, Y.CartesianSeries, {
 /**
 * Returns the width for each marker base on the width of the series
 * and the length of the dataProvider.
 *
 * @method calculateMarkerWidth
 * @param {Number} width The width, in pixels of the series.
 * @param {Number} count The length of the datProvider.
 * @return Number
 * @private
 */
 _calculateMarkerWidth: function(width, count, spacing)
 {
 var val = 0;
 while(val < 3 && spacing > -1)
 {
 spacing = spacing - 1;
 val = Math.round(width/count - spacing);
 if(val % 2 === 0) {
 val = val - 1;
 }
 }
 return Math.max(1, val);
 },
 
 /**
 * Draws the series.
 *
 * @method drawSeries
 * @protected
 */
 drawSeries: function()
 {
 var xcoords = this.get("xcoords"),
 ycoords = this.get("ycoords"),
 styles = this.get("styles"),
 padding = styles.padding,
 len = xcoords.length,
 dataWidth = this.get("width") - (padding.left + padding.right),
 keys = this.get("ohlckeys"),
 opencoords = ycoords[keys.open],
 highcoords = ycoords[keys.high],
 lowcoords = ycoords[keys.low],
 closecoords = ycoords[keys.close],
 width = this._calculateMarkerWidth(dataWidth, len, styles.spacing),
 halfwidth = width/2;
 this._drawMarkers(xcoords, opencoords, highcoords, lowcoords, closecoords, len, width, halfwidth, styles);
 },
 
 /**
 * Gets the default value for the `styles` attribute. Overrides
 * base implementation.
 *
 * @method _getDefaultStyles
 * @return Object
 * @private
 */
 _getDefaultStyles: function()
 {
 var styles = {
 spacing: 3
 };
 return this._mergeStyles(styles, RangeSeries.superclass._getDefaultStyles());
 }
 });
 
 Y.RangeSeries = RangeSeries;
 
 
 
 

AltStyle によって変換されたページ (->オリジナル) /