|
525
|
1 |
/* |
|
|
2 |
YUI 3.10.3 (build 2fb5187) |
|
|
3 |
Copyright 2013 Yahoo! Inc. All rights reserved. |
|
|
4 |
Licensed under the BSD License. |
|
|
5 |
http://yuilibrary.com/license/ |
|
|
6 |
*/ |
|
|
7 |
|
|
|
8 |
YUI.add('series-range', function (Y, NAME) { |
|
|
9 |
|
|
|
10 |
/** |
|
|
11 |
* Provides functionality for creating a range series. |
|
|
12 |
* |
|
|
13 |
* @module charts |
|
|
14 |
* @submodule series-range |
|
|
15 |
*/ |
|
|
16 |
|
|
|
17 |
/** |
|
|
18 |
* An abstract class for creating range series instances. |
|
|
19 |
* RangeSeries is used by the following classes: |
|
|
20 |
* <ul> |
|
|
21 |
* <li>{{#crossLink "CandlestickSeries"}}{{/crossLink}}</li> |
|
|
22 |
* <li>{{#crossLink "OHLCSeries"}}{{/crossLink}}</li> |
|
|
23 |
* </ul> |
|
|
24 |
* |
|
|
25 |
* @class RangeSeries |
|
|
26 |
* @extends CartesianSeries |
|
|
27 |
* @constructor |
|
|
28 |
* @param {Object} config (optional) Configuration parameters. |
|
|
29 |
* @submodule series-range |
|
|
30 |
*/ |
|
|
31 |
function RangeSeries() |
|
|
32 |
{ |
|
|
33 |
RangeSeries.superclass.constructor.apply(this, arguments); |
|
|
34 |
} |
|
|
35 |
|
|
|
36 |
RangeSeries.NAME = "rangeSeries"; |
|
|
37 |
|
|
|
38 |
RangeSeries.ATTRS = { |
|
|
39 |
/** |
|
|
40 |
* Read-only attribute indicating the type of series. |
|
|
41 |
* |
|
|
42 |
* @attribute type |
|
|
43 |
* @type String |
|
|
44 |
* @default range |
|
|
45 |
*/ |
|
|
46 |
type: { |
|
|
47 |
value: "range" |
|
|
48 |
}, |
|
|
49 |
|
|
|
50 |
/** |
|
|
51 |
* Values to be used for open, high, low and close keys. |
|
|
52 |
* |
|
|
53 |
* @attribute ohlc |
|
|
54 |
* @type Object |
|
|
55 |
*/ |
|
|
56 |
ohlckeys: { |
|
|
57 |
valueFn: function() { |
|
|
58 |
return { |
|
|
59 |
open: "open", |
|
|
60 |
high: "high", |
|
|
61 |
low: "low", |
|
|
62 |
close: "close" |
|
|
63 |
}; |
|
|
64 |
} |
|
|
65 |
} |
|
|
66 |
}; |
|
|
67 |
|
|
|
68 |
Y.extend(RangeSeries, Y.CartesianSeries, { |
|
|
69 |
/** |
|
|
70 |
* Draws the series. |
|
|
71 |
* |
|
|
72 |
* @method drawSeries |
|
|
73 |
* @protected |
|
|
74 |
*/ |
|
|
75 |
drawSeries: function() |
|
|
76 |
{ |
|
|
77 |
var xcoords = this.get("xcoords"), |
|
|
78 |
ycoords = this.get("ycoords"), |
|
|
79 |
styles = this.get("styles"), |
|
|
80 |
padding = styles.padding, |
|
|
81 |
len = xcoords.length, |
|
|
82 |
dataWidth = this.get("width") - (padding.left + padding.right), |
|
|
83 |
keys = this.get("ohlckeys"), |
|
|
84 |
opencoords = ycoords[keys.open], |
|
|
85 |
highcoords = ycoords[keys.high], |
|
|
86 |
lowcoords = ycoords[keys.low], |
|
|
87 |
closecoords = ycoords[keys.close], |
|
|
88 |
width = dataWidth/len, |
|
|
89 |
halfwidth = width/2; |
|
|
90 |
this._drawMarkers(xcoords, opencoords, highcoords, lowcoords, closecoords, len, width, halfwidth, styles); |
|
|
91 |
} |
|
|
92 |
}); |
|
|
93 |
|
|
|
94 |
Y.RangeSeries = RangeSeries; |
|
|
95 |
|
|
|
96 |
|
|
|
97 |
|
|
|
98 |
|
|
|
99 |
}, '3.10.3', {"requires": ["series-cartesian"]}); |