src/cm/media/js/lib/yui/yui3-3.15.0/build/series-candlestick/series-candlestick.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('series-candlestick', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Provides functionality for creating a candlestick series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule series-candlestick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
 * The CandlestickSeries class renders columns (candles) and lines (wicks) representing the open, high, low and close
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
 * values for a chart.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 * @class CandlestickSeries
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * @extends RangeSeries
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 * @param {Object} config (optional) Configuration parameters.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 * @submodule series-candlestick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
function CandlestickSeries()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
    CandlestickSeries.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
CandlestickSeries.NAME = "candlestickSeries";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
CandlestickSeries.ATTRS = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
     * Read-only attribute indicating the type of series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
     * @attribute type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
     * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
     * @readOnly
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
     * @default candlestick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
    type: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
        value: "candlestick"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
     * The graphic in which drawings will be rendered.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
     * @attribute graphic
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
     * @type Graphic
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
    graphic: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
        lazyAdd: false,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
        setter: function(val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
            //woraround for Attribute order of operations bug
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
            if(!this.get("rendered")) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
                this.set("rendered", true);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
            this.set("upcandle", val.addShape({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
               type: "path"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
            }));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
            this.set("downcandle", val.addShape({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
               type: "path"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
            }));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
            this.set("wick", val.addShape({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
               type: "path"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
            }));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
            return val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
     * Reference to the candlestick used when the close value is higher than the open value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
     * @attribute upcandle
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
     * @type Path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
    upcandle: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
     * Reference to the candlestick used when the open value is higher than the close value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
     * @attribute downcandle
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
     * @type Path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
    downcandle: {},
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
     * Reference to the line drawn between the high and low values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
     * @attribute wick
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
     * @type Path
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
    wick: {}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
     * Style properties used for drawing candles and wicks. This attribute is inherited from `RangeSeries`. Below are the default values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
     *  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
     *      <dt>upcandle</dt><dd>Properties for a candle representing a period that closes higher than it opens.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
     *          <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
     *              <dt>fill</dt><dd>A hash containing the following values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
     *                  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
     *                      <dt>color</dt><dd>Color of the fill. The default value is "#00aa00".</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
     *                      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
     *                      <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker fill. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
     *                  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
     *              </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
     *              <dt>border</dt><dd>A hash containing the following values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
     *                  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
     *                      <dt>color</dt><dd>Color of the border. The default value is "#000000".</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
     *                      <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker border. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
     *                      <dt>weight</dt><dd>Number indicating the width of the border. The default value is 0.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
     *                  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
     *              </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
     *          </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
     *      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
     *      <dt>downcandle</dt><dd>Properties for a candle representing a period that opens higher than it closes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
     *          <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
     *              <dt>fill</dt><dd>A hash containing the following values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
     *                  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
     *                      <dt>color</dt><dd>Color of the fill. The default value is "#aa0000".</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
     *                      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
     *                      <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker fill. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
     *                  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
     *              </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
     *              <dt>border</dt><dd>A hash containing the following values:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
     *                  <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
     *                      <dt>color</dt><dd>Color of the border. The default value is "#000000".</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
     *                      <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the marker border. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
     *                      <dt>weight</dt><dd>Number indicating the width of the border. The default value is 0.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
     *                  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
     *              </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
     *          </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
     *      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
     *      <dt>wick</dt><dd>Properties for the wick, which is a line drawn from the high point of the period to the low point of the period.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
     *          <dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
     *              <dt>color</dt><dd>The color of the wick. The default value is "#000000".</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
     *              <dt>weight</dt><dd>The weight of the wick. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
     *              <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the wick. The default value is 1.</dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
     *          </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
     *      </dd>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
     *  </dl>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
     * @attribute styles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
Y.extend(CandlestickSeries, Y.RangeSeries, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
     * Draws markers for an Candlestick series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
     * @method
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
     * @param {Array} xcoords The xcoordinates to be plotted.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
     * @param {Array} opencoords The coordinates representing the open values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
     * @param {Array} highcoords The coordinates representing the high values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
     * @param {Array} lowcoords The coordinates representing the low values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
     * @param {Array} closecoords The coordinates representing the close values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
     * @param {Number} len The number of x coordinates to plot.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
     * @param {Number} width The width of each candlestick marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
     * @param {Number} halfwidth Half the width of each candlestick marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
     * @param {Object} styles The styles for the series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
    _drawMarkers: function(xcoords, opencoords, highcoords, lowcoords, closecoords, len, width, halfwidth, styles)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
        var upcandle = this.get("upcandle"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
            downcandle = this.get("downcandle"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
            candle,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
            wick = this.get("wick"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
            wickStyles = styles.wick,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
            wickWidth = wickStyles.width,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
            cx,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
            opencoord,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
            highcoord,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
            lowcoord,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
            closecoord,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
            left,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
            right,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
            top,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
            bottom,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
            height,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
            leftPadding = styles.padding.left,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
            up,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
            i,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
            isNumber = Y.Lang.isNumber;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
        upcandle.set(styles.upcandle);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
        downcandle.set(styles.downcandle);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
        wick.set({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
            fill: wickStyles.fill,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
            stroke: wickStyles.stroke,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
            shapeRendering: wickStyles.shapeRendering
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
        });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
        upcandle.clear();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
        downcandle.clear();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
        wick.clear();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
        for(i = 0; i < len; i = i + 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
            cx = Math.round(xcoords[i] + leftPadding);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
            left = cx - halfwidth;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
            right = cx + halfwidth;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
            opencoord = Math.round(opencoords[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
            highcoord = Math.round(highcoords[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
            lowcoord = Math.round(lowcoords[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
            closecoord = Math.round(closecoords[i]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
            up = opencoord > closecoord;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
            top = up ? closecoord : opencoord;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
            bottom = up ? opencoord : closecoord;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
            height = bottom - top;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
            candle = up ? upcandle : downcandle;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
            if(candle && isNumber(left) && isNumber(top) && isNumber(width) && isNumber(height))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
                candle.drawRect(left, top, width, height);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
            if(isNumber(cx) && isNumber(highcoord) && isNumber(lowcoord))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
                wick.drawRect(cx - wickWidth/2, highcoord, wickWidth, lowcoord - highcoord);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
        upcandle.end();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
        downcandle.end();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
        wick.end();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
        wick.toBack();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
     * Toggles visibility
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
     * @method _toggleVisible
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
     * @param {Boolean} visible indicates visibilitye
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
    _toggleVisible: function(visible)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
        this.get("upcandle").set("visible", visible);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
        this.get("downcandle").set("visible", visible);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
        this.get("wick").set("visible", visible);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
     * Destructor implementation for the CartesianSeries class. Calls destroy on all Graphic instances.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
     * @method destructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
    destructor: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
        var upcandle = this.get("upcandle"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
            downcandle = this.get("downcandle"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
            wick = this.get("wick");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
        if(upcandle)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
            upcandle.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
        if(downcandle)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
            downcandle.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
        if(wick)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
            wick.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
     * Gets the default value for the `styles` attribute. Overrides
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
     * base implementation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
     * @method _getDefaultStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
    _getDefaultStyles: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
        var styles = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
            upcandle: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
                shapeRendering: "crispEdges",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
                fill: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
                    color: "#00aa00",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
                    alpha: 1
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
                stroke: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
                    color: "#000000",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
                    alpha: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
                    weight: 0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
            downcandle: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
                shapeRendering: "crispEdges",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
                fill: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
                    color: "#aa0000",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
                    alpha: 1
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
                stroke: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
                    color: "#000000",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
                    alpha: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
                    weight: 0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
            wick: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
                shapeRendering: "crispEdges",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
                width: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
                fill: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
                    color: "#000000",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
                    alpha: 1
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
                stroke: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
                    color: "#000000",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
                    alpha: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
                    weight: 0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
        return this._mergeStyles(styles, CandlestickSeries.superclass._getDefaultStyles());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
Y.CandlestickSeries = CandlestickSeries;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
}, '@VERSION@', {"requires": ["series-range"]});