src/cm/media/js/lib/yui/yui_3.10.3/build/charts-base/charts-base-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('charts-base', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Provides functionality for creating charts.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module charts
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
var CONFIG = Y.config,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
    WINDOW = CONFIG.win,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
    DOCUMENT = CONFIG.doc,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    Y_Lang = Y.Lang,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    IS_STRING = Y_Lang.isString,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    _getClassName = Y.ClassNameManager.getClassName,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    SERIES_MARKER = _getClassName("seriesmarker");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * Gridlines draws gridlines on a Graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 * @class Gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 * @extends Base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 * @uses Renderer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
 * @param {Object} config (optional) Configuration parameters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
Y.Gridlines = Y.Base.create("gridlines", Y.Base, [Y.Renderer], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     * Reference to the `Path` element used for drawing Gridlines.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     * @property _path
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     * @type Path
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    _path: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
     * Removes the Gridlines.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
     * @method remove
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    remove: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
        var path = this._path;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
        if(path)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
            path.destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
     * Draws the gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
     * @method draw
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
    draw: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
        if(this.get("axis") && this.get("graph"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
            this._drawGridlines();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
     * Algorithm for drawing gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
     * @method _drawGridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
    _drawGridlines: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
        var path,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
            axis = this.get("axis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
            axisPosition = axis.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
            points,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
            direction = this.get("direction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
            graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
            w = graph.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
            h = graph.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
            line = this.get("styles").line,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
            color = line.color,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
            weight = line.weight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
            alpha = line.alpha,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
            count = this.get("count"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
            length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
            lineFunction;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
        if(isFinite(w) && isFinite(h) && w > 0 && h > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
            if(count && Y.Lang.isNumber(count))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
                points = this._getPoints(count, w, h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
            else if(axisPosition !== "none" && axis && axis.get("tickPoints"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
                points = axis.get("tickPoints");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
                points = this._getPoints(axis.get("styles").majorUnit.count, w, h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            l = points.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
            path = graph.get("gridlines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
            path.set("width", w);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
            path.set("height", h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
            path.set("stroke", {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
                weight: weight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
                color: color,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
                opacity: alpha
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
            if(direction === "vertical")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
                lineFunction = this._verticalLine;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
                length = h;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
                lineFunction = this._horizontalLine;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
                length = w;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
            for(i = 0; i < l; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
                lineFunction(path, points[i], length);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
            path.end();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     * Calculates the coordinates for the gridlines based on a count.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
     * @method _getPoints
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
     * @param {Number} count Number of gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
    _getPoints: function(count, w, h)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
        var i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
            points = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
            multiplier,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
            divisor = count - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        for(i = 0; i < count; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
            multiplier = i/divisor;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
            points[i] = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
                x: w * multiplier,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
                y: h * multiplier
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
        return points;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
     * Algorithm for horizontal lines.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
     * @method _horizontalLine
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
     * @param {Path} path Reference to path element
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
     * @param {Object} pt Coordinates corresponding to a major unit of an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
     * @param {Number} w Width of the Graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
    _horizontalLine: function(path, pt, w)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        path.moveTo(0, pt.y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        path.lineTo(w, pt.y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
     * Algorithm for vertical lines.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
     * @method _verticalLine
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
     * @param {Path} path Reference to path element
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
     * @param {Object} pt Coordinates corresponding to a major unit of an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
     * @param {Number} h Height of the Graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
    _verticalLine: function(path, pt, h)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
        path.moveTo(pt.x, 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
        path.lineTo(pt.x, h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
     * Gets the default value for the `styles` attribute. Overrides
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
     * base implementation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
     * @method _getDefaultStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    _getDefaultStyles: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
        var defs = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
            line: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
                color:"#f0efe9",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
                weight: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
                alpha: 1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
        return defs;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
         * Indicates the direction of the gridline.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
         * @attribute direction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
        direction: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
         * Indicate the `Axis` in which to bind
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
         * the gridlines.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
         * @attribute axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
         * @type Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
        axis: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
         * Indicates the `Graph` in which the gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
         * are drawn.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
         * @attribute graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
         * @type Graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        graph: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
         * Indicates the number of gridlines to display. If no value is set, gridlines will equal the number of ticks in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
         * the corresponding axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
         * @attribute count
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
        count: {}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
 * Graph manages and contains series instances for a `CartesianChart`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
 * instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
 * @class Graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
 * @extends Widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
 * @uses Renderer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
Y.Graph = Y.Base.create("graph", Y.Widget, [Y.Renderer], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
     * @method bindUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
    bindUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
        var bb = this.get("boundingBox");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        bb.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
        this.after("widthChange", this._sizeChangeHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        this.after("heightChange", this._sizeChangeHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        this.after("stylesChange", this._updateStyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        this.after("groupMarkersChange", this._drawSeries);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
     * @method syncUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
    syncUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
        var background,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
            cb,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
            bg,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
            sc = this.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
            series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
            len = sc ? sc.length : 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
            hgl = this.get("horizontalGridlines"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
            vgl = this.get("verticalGridlines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
        if(this.get("showBackground"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
            background = this.get("background");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
            cb = this.get("contentBox");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
            bg = this.get("styles").background;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
            bg.stroke = bg.border;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
            bg.stroke.opacity = bg.stroke.alpha;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
            bg.fill.opacity = bg.fill.alpha;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
            bg.width = this.get("width");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
            bg.height = this.get("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
            bg.type = bg.shape;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
            background.set(bg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
            series = sc[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
            if(series instanceof Y.SeriesBase)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
                series.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
        if(hgl && hgl instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
            hgl.draw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
        if(vgl && vgl instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
            vgl.draw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
     * Object of arrays containing series mapped to a series type.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
     * @property seriesTypes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
    seriesTypes: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
     * Returns a series instance based on an index.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
     * @method getSeriesByIndex
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
     * @param {Number} val index of the series
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
     * @return CartesianSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
    getSeriesByIndex: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
        var col = this.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
            series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
        if(col && col.length > val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
            series = col[val];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
        return series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
     * Returns a series instance based on a key value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
     * @method getSeriesByKey
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
     * @param {String} val key value of the series
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
     * @return CartesianSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    getSeriesByKey: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
        var obj = this._seriesDictionary,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
            series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
        if(obj && obj.hasOwnProperty(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
            series = obj[val];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
        return series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
     * Adds dispatcher to a `_dispatcher` used to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
     * to ensure all series have redrawn before for firing event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
     * @method addDispatcher
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
     * @param {CartesianSeries} val series instance to add
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
    addDispatcher: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        if(!this._dispatchers)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
            this._dispatchers = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
        this._dispatchers.push(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
     * Collection of series to be displayed in the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
     * @property _seriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
    _seriesCollection: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
     * Object containing key value pairs of `CartesianSeries` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
     * @property _seriesDictionary
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
    _seriesDictionary: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
     * Parses series instances to be displayed in the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
     * @method _parseSeriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
     * @param {Array} Collection of `CartesianSeries` instances or objects container `CartesianSeries` attributes values.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    _parseSeriesCollection: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
        if(!val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
            return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
        var len = val.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
            series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
            seriesKey;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        this._seriesCollection = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
        this._seriesDictionary = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
        this.seriesTypes = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
            series = val[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
            if(!(series instanceof Y.CartesianSeries) && !(series instanceof Y.PieSeries))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
                this._createSeries(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
                continue;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
            this._addSeries(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
        len = this._seriesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
        for(i = 0; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
            series = this.get("seriesCollection")[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
            seriesKey = series.get("direction") === "horizontal" ? "yKey" : "xKey";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
            this._seriesDictionary[series.get(seriesKey)] = series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
     * Adds a series to the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
     * @method _addSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
     * @param {CartesianSeries} series Series to add to the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
    _addSeries: function(series)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
        var type = series.get("type"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
            seriesCollection = this.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
            graphSeriesLength = seriesCollection.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
            seriesTypes = this.seriesTypes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
            typeSeriesCollection;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
        if(!series.get("graph"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
            series.set("graph", this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
        seriesCollection.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
        if(!seriesTypes.hasOwnProperty(type))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
            this.seriesTypes[type] = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
        typeSeriesCollection = this.seriesTypes[type];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
        series.set("graphOrder", graphSeriesLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
        series.set("order", typeSeriesCollection.length);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
        typeSeriesCollection.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
        series.set("seriesTypeCollection", typeSeriesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
        this.addDispatcher(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
        series.after("drawingComplete", Y.bind(this._drawingCompleteHandler, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
        this.fire("seriesAdded", series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
     * Creates a `CartesianSeries` instance from an object containing attribute key value pairs. The key value pairs include
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
     * attributes for the specific series and a type value which defines the type of series to be used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
     * @method createSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
     * @param {Object} seriesData Series attribute key value pairs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
    _createSeries: function(seriesData)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
        var type = seriesData.type,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
            seriesCollection = this.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
            seriesTypes = this.seriesTypes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
            typeSeriesCollection,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
            SeriesClass,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
            series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
            seriesData.graph = this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
        if(!seriesTypes.hasOwnProperty(type))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
            seriesTypes[type] = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
        typeSeriesCollection = seriesTypes[type];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
        seriesData.graph = this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
        seriesData.order = typeSeriesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
        seriesData.graphOrder = seriesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
        SeriesClass = this._getSeries(seriesData.type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
        series = new SeriesClass(seriesData);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
        this.addDispatcher(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
        series.after("drawingComplete", Y.bind(this._drawingCompleteHandler, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
        typeSeriesCollection.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
        seriesCollection.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
        series.set("seriesTypeCollection", typeSeriesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
        if(this.get("rendered"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
            series.render();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
     * String reference for pre-defined `Series` classes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
     * @property _seriesMap
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
    _seriesMap: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
        line : Y.LineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
        column : Y.ColumnSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
        bar : Y.BarSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
        area :  Y.AreaSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
        candlestick : Y.CandlestickSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        ohlc : Y.OHLCSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
        stackedarea : Y.StackedAreaSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
        stackedline : Y.StackedLineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
        stackedcolumn : Y.StackedColumnSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
        stackedbar : Y.StackedBarSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
        markerseries : Y.MarkerSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
        spline : Y.SplineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
        areaspline : Y.AreaSplineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
        stackedspline : Y.StackedSplineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
        stackedareaspline : Y.StackedAreaSplineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
        stackedmarkerseries : Y.StackedMarkerSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
        pie : Y.PieSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
        combo : Y.ComboSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
        stackedcombo : Y.StackedComboSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
        combospline : Y.ComboSplineSeries,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
        stackedcombospline : Y.StackedComboSplineSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
     * Returns a specific `CartesianSeries` class based on key value from a look up table of a direct reference to a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
     * class. When specifying a key value, the following options are available:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
     *  <table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
     *      <tr><th>Key Value</th><th>Class</th></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
     *      <tr><td>line</td><td>Y.LineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
     *      <tr><td>column</td><td>Y.ColumnSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
     *      <tr><td>bar</td><td>Y.BarSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
     *      <tr><td>area</td><td>Y.AreaSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
     *      <tr><td>stackedarea</td><td>Y.StackedAreaSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
     *      <tr><td>stackedline</td><td>Y.StackedLineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
     *      <tr><td>stackedcolumn</td><td>Y.StackedColumnSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
     *      <tr><td>stackedbar</td><td>Y.StackedBarSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
     *      <tr><td>markerseries</td><td>Y.MarkerSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
     *      <tr><td>spline</td><td>Y.SplineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
     *      <tr><td>areaspline</td><td>Y.AreaSplineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
     *      <tr><td>stackedspline</td><td>Y.StackedSplineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
     *      <tr><td>stackedareaspline</td><td>Y.StackedAreaSplineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
     *      <tr><td>stackedmarkerseries</td><td>Y.StackedMarkerSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
     *      <tr><td>pie</td><td>Y.PieSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
     *      <tr><td>combo</td><td>Y.ComboSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
     *      <tr><td>stackedcombo</td><td>Y.StackedComboSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
     *      <tr><td>combospline</td><td>Y.ComboSplineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
     *      <tr><td>stackedcombospline</td><td>Y.StackedComboSplineSeries</td></tr>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
     *  </table>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
     * When referencing a class directly, you can specify any of the above classes or any custom class that extends
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
     * `CartesianSeries` or `PieSeries`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
     * @method _getSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
     * @param {String | Object} type Series type.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
     * @return CartesianSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
    _getSeries: function(type)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
        var seriesClass;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
        if(Y_Lang.isString(type))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
            seriesClass = this._seriesMap[type];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
            seriesClass = type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
        return seriesClass;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
     * Event handler for marker events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
     * @method _markerEventHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
    _markerEventHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
        var type = e.type,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
            markerNode = e.currentTarget,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
            strArr = markerNode.getAttribute("id").split("_"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
            series = this.getSeriesByIndex(strArr[1]),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
            index = strArr[2];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
        series.updateMarkerState(type, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
     * Collection of `CartesianSeries` instances to be redrawn.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
     * @property _dispatchers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
    _dispatchers: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
     * Updates the `Graph` styles.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
     * @method _updateStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
    _updateStyles: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
        var styles = this.get("styles").background,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
            border = styles.border;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
            border.opacity = border.alpha;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
            styles.stroke = border;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
            styles.fill.opacity = styles.fill.alpha;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
        this.get("background").set(styles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
        this._sizeChangeHandler();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
     * Event handler for size changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
     * @method _sizeChangeHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
    _sizeChangeHandler: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
        var hgl = this.get("horizontalGridlines"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
            vgl = this.get("verticalGridlines"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
            w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
            bg = this.get("styles").background,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
            weight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
            background;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
        if(bg && bg.border)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
            weight = bg.border.weight || 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
        if(this.get("showBackground"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
            background = this.get("background");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
            if(w && h)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
                background.set("width", w);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
                background.set("height", h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
        if(this._gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
            this._gridlines.clear();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
        if(hgl && hgl instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
            hgl.draw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
        if(vgl && vgl instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
            vgl.draw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
        this._drawSeries();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
     * Draws each series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
     * @method _drawSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
    _drawSeries: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
        if(this._drawing)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
            this._callLater = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
            return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
        var sc,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
            graphic = this.get("graphic");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
        graphic.set("autoDraw", false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
        graphic.set("width", this.get("width"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
        graphic.set("height", this.get("height"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
        this._callLater = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
        this._drawing = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
        sc = this.get("seriesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
        i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
        len = sc ? sc.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
            sc[i].draw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
            if((!sc[i].get("xcoords") || !sc[i].get("ycoords")) && !sc[i] instanceof Y.PieSeries)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
                this._callLater = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
        this._drawing = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
        if(this._callLater)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
            this._drawSeries();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
     * Event handler for series drawingComplete event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
     * @method _drawingCompleteHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
    _drawingCompleteHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
        var series = e.currentTarget,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
            graphic,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
            index = Y.Array.indexOf(this._dispatchers, series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
        if(index > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
            this._dispatchers.splice(index, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
        if(this._dispatchers.length < 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
            graphic = this.get("graphic");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
            if(!graphic.get("autoDraw"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
                graphic._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
            this.fire("chartRendered");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
     * Gets the default value for the `styles` attribute. Overrides
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
     * base implementation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
     * @method _getDefaultStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
    _getDefaultStyles: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
        var defs = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
            background: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
                shape: "rect",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
                fill:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
                    color:"#faf9f2"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
                },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
                border: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
                    color:"#dad8c9",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
                    weight: 1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
        return defs;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
     * Destructor implementation Graph class. Removes all Graphic instances from the widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
     * @method destructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
    destructor: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
        if(this._graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
            this._graphic.destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
            this._graphic = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
        if(this._background)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
            this._background.get("graphic").destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
            this._background = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
        if(this._gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
            this._gridlines.get("graphic").destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
            this._gridlines = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
         * The x-coordinate for the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
         * @attribute x
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
        x: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
                this.get("boundingBox").setStyle("left", val + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
         * The y-coordinate for the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
         * @attribute y
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
        y: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
                this.get("boundingBox").setStyle("top", val + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
         * Reference to the chart instance using the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
         * @attribute chart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
         * @type ChartBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
         * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
        chart: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
            getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
                var chart = this._state.chart || this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
                return chart;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
         * Collection of series. When setting the `seriesCollection` the array can contain a combination of either
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
         * `CartesianSeries` instances or object literals with properties that will define a series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
         * @attribute seriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
         * @type CartesianSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
        seriesCollection: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
                return this._seriesCollection;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
                this._parseSeriesCollection(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
                return this._seriesCollection;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
         * Indicates whether the `Graph` has a background.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
         * @attribute showBackground
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
         * @default true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
        showBackground: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
            value: true
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
         * Read-only hash lookup for all series on in the `Graph`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
         * @attribute seriesDictionary
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
         * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
        seriesDictionary: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
                return this._seriesDictionary;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
         * Reference to the horizontal `Gridlines` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
         * @attribute horizontalGridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
         * @type Gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
         * @default null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
        horizontalGridlines: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
            value: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
                var cfg,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
                    key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
                    gl = this.get("horizontalGridlines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
                if(gl && gl instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
                    gl.remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
                if(val instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
                    gl = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
                    val.set("graph", this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
                    return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
                else if(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
                    cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
                        direction: "horizonal",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
                        graph: this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
                    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
                    for(key in val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
                        if(val.hasOwnProperty(key))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
                            cfg[key] = val[key];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
                    gl = new Y.Gridlines(cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
                    return gl;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
         * Reference to the vertical `Gridlines` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
         * @attribute verticalGridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
         * @type Gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
         * @default null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
        verticalGridlines: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
            value: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
                var cfg,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
                    key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
                    gl = this.get("verticalGridlines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
                if(gl && gl instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
                    gl.remove();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
                if(val instanceof Y.Gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
                    gl = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
                    val.set("graph", this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
                    return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
                else if(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
                    cfg = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
                        direction: "vertical",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
                        graph: this
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
                    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
                    for(key in val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
                        if(val.hasOwnProperty(key))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
                            cfg[key] = val[key];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
                    gl = new Y.Gridlines(cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
                    return gl;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
         * Reference to graphic instance used for the background.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
         * @attribute background
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
         * @type Graphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
         * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
        background: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
                if(!this._background)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
                    this._backgroundGraphic = new Y.Graphic({render:this.get("contentBox")});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
                    this._backgroundGraphic.get("node").style.zIndex = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
                    this._background = this._backgroundGraphic.addShape({type: "rect"});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
                return this._background;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
         * Reference to graphic instance used for gridlines.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
         * @attribute gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
         * @type Graphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
         * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
        gridlines: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
                if(!this._gridlines)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
                    this._gridlinesGraphic = new Y.Graphic({render:this.get("contentBox")});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
                    this._gridlinesGraphic.get("node").style.zIndex = 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
                    this._gridlines = this._gridlinesGraphic.addShape({type: "path"});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
                return this._gridlines;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
         * Reference to graphic instance used for series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
         * @attribute graphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
         * @type Graphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
         * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
        graphic: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
                if(!this._graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
                    this._graphic = new Y.Graphic({render:this.get("contentBox")});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
                    this._graphic.get("node").style.zIndex = 2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
                    this._graphic.set("autoDraw", false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
                return this._graphic;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
         * Indicates whether or not markers for a series will be grouped and rendered in a single complex shape instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
         * @attribute groupMarkers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
        groupMarkers: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
            value: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
         * Style properties used for drawing a background. Below are the default values:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
         *      <dt>background</dt><dd>An object containing the following values:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
         *          <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
         *              <dt>fill</dt><dd>Defines the style properties for the fill. Contains the following values:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
         *                  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
         *                      <dt>color</dt><dd>Color of the fill. The default value is #faf9f2.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
         *                      <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the background fill.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
         *                      The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
         *                  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
         *              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
         *              <dt>border</dt><dd>Defines the style properties for the border. Contains the following values:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
         *                  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
         *                      <dt>color</dt><dd>Color of the border. The default value is #dad8c9.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
         *                      <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the background border.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
         *                      The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
         *                      <dt>weight</dt><dd>Number indicating the width of the border. The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
         *                  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
         *              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
         *          </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
         *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1076
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1077
         * @attribute styles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1078
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1079
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1080
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1081
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1082
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1083
 * The ChartBase class is an abstract class used to create charts.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1084
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1085
 * @class ChartBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1086
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1087
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1088
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1089
function ChartBase() {}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1090
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1091
ChartBase.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1092
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1093
     * Data used to generate the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1094
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1095
     * @attribute dataProvider
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1096
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1097
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1098
    dataProvider: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1099
        lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1100
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1101
        valueFn: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1102
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1103
            var defDataProvider = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1104
            if(!this._seriesKeysExplicitlySet)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1105
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1106
                this.set("seriesKeys", this._buildSeriesKeys(defDataProvider), {src: "internal"});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1107
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1108
            return defDataProvider;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1109
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1110
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1111
        setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1112
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1113
            var dataProvider = this._setDataValues(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1114
            if(!this._seriesKeysExplicitlySet)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1115
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1116
                this.set("seriesKeys", this._buildSeriesKeys(dataProvider), {src: "internal"});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1117
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1118
            return dataProvider;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1119
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1120
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1122
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1123
     * A collection of keys that map to the series axes. If no keys are set,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1124
     * they will be generated automatically depending on the data structure passed into
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1125
     * the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1126
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1127
     * @attribute seriesKeys
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1128
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1129
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1130
    seriesKeys: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1131
        lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1132
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1133
        setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1134
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1135
            var opts = arguments[2];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1136
            if(!val || (opts && opts.src && opts.src === "internal"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1137
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1138
                this._seriesKeysExplicitlySet = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1139
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1140
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1141
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1142
                this._seriesKeysExplicitlySet = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1143
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1144
            return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1145
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1146
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1148
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1149
     * Sets the `aria-label` for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1150
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1151
     * @attribute ariaLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1152
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1153
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1154
    ariaLabel: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1155
        value: "Chart Application",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1157
        setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1158
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1159
            var cb = this.get("contentBox");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1160
            if(cb)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1161
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1162
                cb.setAttribute("aria-label", val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1163
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1164
            return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1165
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1166
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1168
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1169
     * Sets the aria description for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1170
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1171
     * @attribute ariaDescription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1172
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1173
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1174
    ariaDescription: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1175
        value: "Use the up and down keys to navigate between series. Use the left and right keys to navigate through items in a series.",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1177
        setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1178
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1179
            if(this._description)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1180
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1181
                this._description.setContent("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1182
                this._description.appendChild(DOCUMENT.createTextNode(val));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1183
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1184
            return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1185
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1186
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1187
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1188
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1189
     * Reference to the default tooltip available for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1190
     * <p>Contains the following properties:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1191
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1192
     *      <dt>node</dt><dd>Reference to the actual dom node</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1193
     *      <dt>showEvent</dt><dd>Event that should trigger the tooltip</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1194
     *      <dt>hideEvent</dt><dd>Event that should trigger the removal of a tooltip (can be an event or an array of events)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1195
     *      <dt>styles</dt><dd>A hash of style properties that will be applied to the tooltip node</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1196
     *      <dt>show</dt><dd>Indicates whether or not to show the tooltip</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1197
     *      <dt>markerEventHandler</dt><dd>Displays and hides tooltip based on marker events</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1198
     *      <dt>planarEventHandler</dt><dd>Displays and hides tooltip based on planar events</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1199
     *      <dt>markerLabelFunction</dt><dd>Reference to the function used to format a marker event triggered tooltip's text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1200
     *      The method contains the following arguments:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1201
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1202
     *      <dt>categoryItem</dt><dd>An object containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1203
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1204
     *      <dt>axis</dt><dd>The axis to which the category is bound.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1205
     *      <dt>displayName</dt><dd>The display name set to the category (defaults to key if not provided).</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1206
     *      <dt>key</dt><dd>The key of the category.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1207
     *      <dt>value</dt><dd>The value of the category.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1208
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1209
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1210
     *  <dt>valueItem</dt><dd>An object containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1211
     *      <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1212
     *          <dt>axis</dt><dd>The axis to which the item's series is bound.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1213
     *          <dt>displayName</dt><dd>The display name of the series. (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1214
     *          <dt>key</dt><dd>The key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1215
     *          <dt>value</dt><dd>The value for the series item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1216
     *      </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1217
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1218
     *  <dt>itemIndex</dt><dd>The index of the item within the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1219
     *  <dt>series</dt><dd> The `CartesianSeries` instance of the item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1220
     *  <dt>seriesIndex</dt><dd>The index of the series in the `seriesCollection`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1221
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1222
     *  The method returns an `HTMLElement` which is written into the DOM using `appendChild`. If you override this method and choose
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1223
     *  to return an html string, you will also need to override the tooltip's `setTextFunction` method to accept an html string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1224
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1225
     *  <dt>planarLabelFunction</dt><dd>Reference to the function used to format a planar event triggered tooltip's text
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1226
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1227
     *      <dt>categoryAxis</dt><dd> `CategoryAxis` Reference to the categoryAxis of the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1228
     *      <dt>valueItems</dt><dd>Array of objects for each series that has a data point in the coordinate plane of the event. Each
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1229
     *      object contains the following data:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1230
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1231
     *      <dt>axis</dt><dd>The value axis of the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1232
     *      <dt>key</dt><dd>The key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1233
     *      <dt>value</dt><dd>The value for the series item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1234
     *      <dt>displayName</dt><dd>The display name of the series. (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1235
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1236
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1237
     *      <dt>index</dt><dd>The index of the item within its series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1238
     *      <dt>seriesArray</dt><dd>Array of series instances for each value item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1239
     *      <dt>seriesIndex</dt><dd>The index of the series in the `seriesCollection`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1240
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1241
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1242
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1243
     *  The method returns an `HTMLElement` which is written into the DOM using `appendChild`. If you override this method and choose
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1244
     *  to return an html string, you will also need to override the tooltip's `setTextFunction` method to accept an html string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1245
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1246
     *  <dt>setTextFunction</dt><dd>Method that writes content returned from `planarLabelFunction` or `markerLabelFunction` into the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1247
     *  the tooltip node. Has the following signature:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1248
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1249
     *      <dt>label</dt><dd>The `HTMLElement` that the content is to be added.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1250
     *      <dt>val</dt><dd>The content to be rendered into tooltip. This can be a `String` or `HTMLElement`. If an HTML string is used,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1251
     *      it will be rendered as a string.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1252
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1253
     *  </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1254
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1255
     * @attribute tooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1256
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1257
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1258
    tooltip: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1259
        valueFn: "_getTooltip",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1260
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1261
        setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1262
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1263
            return this._updateTooltip(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1264
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1265
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1267
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1268
     * The key value used for the chart's category axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1269
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1270
     * @attribute categoryKey
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1271
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1272
     * @default category
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1273
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1274
    categoryKey: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1275
        value: "category"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1276
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1277
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1278
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1279
     * Indicates the type of axis to use for the category axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1280
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1281
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1282
     *      <dt>category</dt><dd>Specifies a `CategoryAxis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1283
     *      <dt>time</dt><dd>Specifies a `TimeAxis</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1284
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1285
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1286
     * @attribute categoryType
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1287
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1288
     * @default category
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1289
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1290
    categoryType:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1291
        value:"category"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1292
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1293
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1294
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1295
     * Indicates the the type of interactions that will fire events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1296
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1297
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1298
     *      <dt>marker</dt><dd>Events will be broadcasted when the mouse interacts with individual markers.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1299
     *      <dt>planar</dt><dd>Events will be broadcasted when the mouse intersects the plane of any markers on the chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1300
     *      <dt>none</dt><dd>No events will be broadcasted.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1301
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1302
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1303
     * @attribute interactionType
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1304
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1305
     * @default marker
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1306
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1307
    interactionType: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1308
        value: "marker"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1309
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1311
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1312
     * Reference to all the axes in the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1313
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1314
     * @attribute axesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1315
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1316
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1317
    axesCollection: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1318
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1319
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1320
     * Reference to graph instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1321
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1322
     * @attribute graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1323
     * @type Graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1324
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1325
    graph: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1326
        valueFn: "_getGraph"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1327
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1328
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1329
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1330
     * Indicates whether or not markers for a series will be grouped and rendered in a single complex shape instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1331
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1332
     * @attribute groupMarkers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1333
     * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1334
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1335
    groupMarkers: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1336
        value: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1337
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1338
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1339
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1340
ChartBase.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1341
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1342
     * Handles groupMarkers change event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1343
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1344
     * @method _groupMarkersChangeHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1345
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1346
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1347
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1348
    _groupMarkersChangeHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1349
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1350
        var graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1351
            useGroupMarkers = e.newVal;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1352
        if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1353
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1354
            graph.set("groupMarkers", useGroupMarkers);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1355
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1356
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1357
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1358
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1359
     * Handler for itemRendered event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1360
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1361
     * @method _itemRendered
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1362
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1363
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1364
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1365
    _itemRendered: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1366
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1367
        this._itemRenderQueue = this._itemRenderQueue.splice(1 + Y.Array.indexOf(this._itemRenderQueue, e.currentTarget), 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1368
        if(this._itemRenderQueue.length < 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1369
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1370
            this._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1371
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1372
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1373
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1374
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1375
     * Default value function for the `Graph` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1376
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1377
     * @method _getGraph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1378
     * @return Graph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1379
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1380
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1381
    _getGraph: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1382
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1383
        var graph = new Y.Graph({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1384
            chart:this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1385
            groupMarkers: this.get("groupMarkers")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1386
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1387
        graph.after("chartRendered", Y.bind(function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1388
            this.fire("chartRendered");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1389
        }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1390
        return graph;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1391
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1392
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1393
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1394
     * Returns a series instance by index or key value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1395
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1396
     * @method getSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1397
     * @param val
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1398
     * @return CartesianSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1399
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1400
    getSeries: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1401
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1402
        var series = null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1403
            graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1404
        if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1405
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1406
            if(Y_Lang.isNumber(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1407
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1408
                series = graph.getSeriesByIndex(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1409
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1410
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1411
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1412
                series = graph.getSeriesByKey(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1413
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1414
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1415
        return series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1416
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1417
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1418
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1419
     * Returns an `Axis` instance by key reference. If the axis was explicitly set through the `axes` attribute,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1420
     * the key will be the same as the key used in the `axes` object. For default axes, the key for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1421
     * the category axis is the value of the `categoryKey` (`category`). For the value axis, the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1422
     * key is `values`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1423
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1424
     * @method getAxisByKey
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1425
     * @param {String} val Key reference used to look up the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1426
     * @return Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1427
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1428
    getAxisByKey: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1429
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1430
        var axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1431
            axes = this.get("axes");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1432
        if(axes && axes.hasOwnProperty(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1433
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1434
            axis = axes[val];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1435
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1436
        return axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1437
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1438
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1439
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1440
     * Returns the category axis for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1441
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1442
     * @method getCategoryAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1443
     * @return Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1444
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1445
    getCategoryAxis: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1446
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1447
        var axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1448
            key = this.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1449
            axes = this.get("axes");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1450
        if(axes.hasOwnProperty(key))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1451
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1452
            axis = axes[key];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1453
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1454
        return axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1455
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1456
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1457
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1458
     * Default direction of the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1459
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1460
     * @property _direction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1461
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1462
     * @default horizontal
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1463
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1464
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1465
    _direction: "horizontal",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1466
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1467
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1468
     * Storage for the `dataProvider` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1469
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1470
     * @property _dataProvider
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1471
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1472
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1473
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1474
    _dataProvider: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1475
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1476
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1477
     * Setter method for `dataProvider` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1478
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1479
     * @method _setDataValues
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1480
     * @param {Array} val Array to be set as `dataProvider`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1481
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1482
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1483
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1484
    _setDataValues: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1485
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1486
        if(Y_Lang.isArray(val[0]))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1487
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1488
            var hash,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1489
                dp = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1490
                cats = val[0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1491
                i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1492
                l = cats.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1493
                n,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1494
                sl = val.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1495
            for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1496
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1497
                hash = {category:cats[i]};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1498
                for(n = 1; n < sl; ++n)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1499
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1500
                    hash["series" + n] = val[n][i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1501
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1502
                dp[i] = hash;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1503
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1504
            return dp;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1505
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1506
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1507
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1508
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1509
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1510
     * Storage for `seriesCollection` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1511
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1512
     * @property _seriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1513
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1514
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1515
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1516
    _seriesCollection: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1517
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1518
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1519
     * Setter method for `seriesCollection` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1520
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1521
     * @property _setSeriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1522
     * @param {Array} val Array of either `CartesianSeries` instances or objects containing series attribute key value pairs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1523
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1524
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1525
    _setSeriesCollection: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1526
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1527
        this._seriesCollection = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1528
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1529
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1530
     * Helper method that returns the axis class that a key references.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1531
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1532
     * @method _getAxisClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1533
     * @param {String} t The type of axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1534
     * @return Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1535
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1536
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1537
    _getAxisClass: function(t)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1538
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1539
        return this._axisClass[t];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1540
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1541
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1542
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1543
     * Key value pairs of axis types.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1544
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1545
     * @property _axisClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1546
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1547
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1548
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1549
    _axisClass: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1550
        stacked: Y.StackedAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1551
        numeric: Y.NumericAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1552
        category: Y.CategoryAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1553
        time: Y.TimeAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1554
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1555
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1556
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1557
     * Collection of axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1558
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1559
     * @property _axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1560
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1561
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1562
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1563
    _axes: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1564
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1565
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1566
     * @method initializer
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1567
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1568
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1569
    initializer: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1570
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1571
        this._itemRenderQueue = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1572
        this._seriesIndex = -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1573
        this._itemIndex = -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1574
        this.after("dataProviderChange", this._dataProviderChangeHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1575
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1576
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1577
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1578
     * @method renderUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1579
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1580
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1581
    renderUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1582
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1583
        var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1584
            bb = this.get("boundingBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1585
            cb = this.get("contentBox");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1586
        //move the position = absolute logic to a class file
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1587
        bb.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1588
        cb.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1589
        this._addAxes();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1590
        this._addSeries();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1591
        if(tt && tt.show)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1592
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1593
            this._addTooltip();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1594
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1595
        this._setAriaElements(bb, cb);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1596
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1597
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1598
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1599
     * Creates an aria `live-region`, `aria-label` and `aria-describedby` for the Chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1600
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1601
     * @method _setAriaElements
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1602
     * @param {Node} cb Reference to the Chart's `contentBox` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1603
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1604
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1605
    _setAriaElements: function(bb, cb)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1606
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1607
        var description = this._getAriaOffscreenNode(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1608
            id = this.get("id") + "_description",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1609
            liveRegion = this._getAriaOffscreenNode();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1610
        cb.set("tabIndex", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1611
        cb.set("role", "img");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1612
        cb.setAttribute("aria-label", this.get("ariaLabel"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1613
        cb.setAttribute("aria-describedby", id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1614
        description.set("id", id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1615
        description.set("tabIndex", -1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1616
        description.appendChild(DOCUMENT.createTextNode(this.get("ariaDescription")));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1617
        liveRegion.set("id", "live-region");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1618
        liveRegion.set("aria-live", "polite");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1619
        liveRegion.set("aria-atomic", "true");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1620
        liveRegion.set("role", "status");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1621
        bb.setAttribute("role", "application");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1622
        bb.appendChild(description);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1623
        bb.appendChild(liveRegion);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1624
        this._description = description;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1625
        this._liveRegion = liveRegion;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1626
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1627
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1628
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1629
     * Sets a node offscreen for use as aria-description or aria-live-regin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1630
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1631
     * @method _setOffscreen
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1632
     * @return Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1633
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1634
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1635
    _getAriaOffscreenNode: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1636
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1637
        var node = Y.Node.create("<div></div>"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1638
            ie = Y.UA.ie,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1639
            clipRect = (ie && ie < 8) ? "rect(1px 1px 1px 1px)" : "rect(1px, 1px, 1px, 1px)";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1640
        node.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1641
        node.setStyle("height", "1px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1642
        node.setStyle("width", "1px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1643
        node.setStyle("overflow", "hidden");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1644
        node.setStyle("clip", clipRect);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1645
        return node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1646
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1647
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1648
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1649
     * @method syncUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1650
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1651
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1652
    syncUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1653
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1654
        this._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1655
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1656
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1657
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1658
     * @method bindUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1659
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1660
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1661
    bindUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1662
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1663
        this.after("tooltipChange", Y.bind(this._tooltipChangeHandler, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1664
        this.after("widthChange", this._sizeChanged);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1665
        this.after("heightChange", this._sizeChanged);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1666
        this.after("groupMarkersChange", this._groupMarkersChangeHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1667
        var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1668
            hideEvent = "mouseout",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1669
            showEvent = "mouseover",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1670
            cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1671
            interactionType = this.get("interactionType"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1672
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1673
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1674
            markerClassName = "." + SERIES_MARKER,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1675
            isTouch = ((WINDOW && ("ontouchstart" in WINDOW)) && !(Y.UA.chrome && Y.UA.chrome < 6));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1676
        Y.on("keydown", Y.bind(function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1677
            var key = e.keyCode,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1678
                numKey = parseFloat(key),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1679
                msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1680
            if(numKey > 36 && numKey < 41)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1681
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1682
                e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1683
                msg = this._getAriaMessage(numKey);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1684
                this._liveRegion.setContent("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1685
                this._liveRegion.appendChild(DOCUMENT.createTextNode(msg));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1686
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1687
        }, this), this.get("contentBox"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1688
        if(interactionType === "marker")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1689
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1690
            //if touch capabilities, toggle tooltip on touchend. otherwise, the tooltip attribute's hideEvent/showEvent types.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1691
            hideEvent = tt.hideEvent;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1692
            showEvent = tt.showEvent;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1693
            if(isTouch)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1694
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1695
                Y.delegate("touchend", Y.bind(this._markerEventDispatcher, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1696
                //hide active tooltip if the chart is touched
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1697
                Y.on("touchend", Y.bind(function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1698
                    //only halt the event if it originated from the chart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1699
                    if(cb.contains(e.target))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1700
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1701
                        e.halt(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1702
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1703
                    if(this._activeMarker)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1704
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1705
                        this._activeMarker = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1706
                        this.hideTooltip(e);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1707
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1708
                }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1709
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1710
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1711
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1712
                Y.delegate("mouseenter", Y.bind(this._markerEventDispatcher, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1713
                Y.delegate("mousedown", Y.bind(this._markerEventDispatcher, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1714
                Y.delegate("mouseup", Y.bind(this._markerEventDispatcher, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1715
                Y.delegate("mouseleave", Y.bind(this._markerEventDispatcher, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1716
                Y.delegate("click", Y.bind(this._markerEventDispatcher, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1717
                Y.delegate("mousemove", Y.bind(this._positionTooltip, this), cb, markerClassName);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1718
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1719
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1720
        else if(interactionType === "planar")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1721
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1722
            if(isTouch)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1723
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1724
                this._overlay.on("touchend", Y.bind(this._planarEventDispatcher, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1725
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1726
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1727
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1728
                this._overlay.on("mousemove", Y.bind(this._planarEventDispatcher, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1729
                this.on("mouseout", this.hideTooltip);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1730
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1731
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1732
        if(tt)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1733
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1734
            this.on("markerEvent:touchend", Y.bind(function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1735
                var marker = e.series.get("markers")[e.index];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1736
                if(this._activeMarker && marker === this._activeMarker)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1737
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1738
                    this._activeMarker = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1739
                    this.hideTooltip(e);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1740
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1741
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1742
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1743
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1744
                    this._activeMarker = marker;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1745
                    tt.markerEventHandler.apply(this, [e]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1746
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1747
            }, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1748
            if(hideEvent && showEvent && hideEvent === showEvent)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1749
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1750
                this.on(interactionType + "Event:" + hideEvent, this.toggleTooltip);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1751
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1752
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1753
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1754
                if(showEvent)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1755
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1756
                    this.on(interactionType + "Event:" + showEvent, tt[interactionType + "EventHandler"]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1757
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1758
                if(hideEvent)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1759
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1760
                    if(Y_Lang.isArray(hideEvent))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1761
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1762
                        len = hideEvent.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1763
                        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1764
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1765
                            this.on(interactionType + "Event:" + hideEvent[i], this.hideTooltip);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1766
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1767
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1768
                    this.on(interactionType + "Event:" + hideEvent, this.hideTooltip);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1769
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1770
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1771
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1772
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1773
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1774
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1775
     * Event handler for marker events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1776
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1777
     * @method _markerEventDispatcher
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1778
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1779
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1780
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1781
    _markerEventDispatcher: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1782
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1783
        var type = e.type,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1784
            cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1785
            markerNode = e.currentTarget,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1786
            strArr = markerNode.getAttribute("id").split("_"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1787
            index = strArr.pop(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1788
            seriesIndex = strArr.pop(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1789
            series = this.getSeries(parseInt(seriesIndex, 10)),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1790
            items = this.getSeriesItems(series, index),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1791
            isTouch = e && e.hasOwnProperty("changedTouches"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1792
            pageX = isTouch ? e.changedTouches[0].pageX : e.pageX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1793
            pageY = isTouch ? e.changedTouches[0].pageY : e.pageY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1794
            x = pageX - cb.getX(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1795
            y = pageY - cb.getY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1796
        if(type === "mouseenter")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1797
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1798
            type = "mouseover";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1799
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1800
        else if(type === "mouseleave")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1801
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1802
            type = "mouseout";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1803
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1804
        series.updateMarkerState(type, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1805
        e.halt();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1806
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1807
         * Broadcasts when `interactionType` is set to `marker` and a series marker has received a mouseover event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1808
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1809
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1810
         * @event markerEvent:mouseover
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1811
         * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1812
         * @param {EventFacade} e Event facade with the following additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1813
         *   properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1814
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1815
         *      <dt>categoryItem</dt><dd>Hash containing information about the category `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1816
         *      <dt>valueItem</dt><dd>Hash containing information about the value `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1817
         *      <dt>node</dt><dd>The dom node of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1818
         *      <dt>x</dt><dd>The x-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1819
         *      <dt>y</dt><dd>The y-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1820
         *      <dt>series</dt><dd>Reference to the series of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1821
         *      <dt>index</dt><dd>Index of the marker in the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1822
         *      <dt>seriesIndex</dt><dd>The `order` of the marker's series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1823
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1824
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1825
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1826
         * Broadcasts when `interactionType` is set to `marker` and a series marker has received a mouseout event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1827
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1828
         * @event markerEvent:mouseout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1829
         * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1830
         * @param {EventFacade} e Event facade with the following additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1831
         *   properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1832
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1833
         *      <dt>categoryItem</dt><dd>Hash containing information about the category `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1834
         *      <dt>valueItem</dt><dd>Hash containing information about the value `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1835
         *      <dt>node</dt><dd>The dom node of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1836
         *      <dt>x</dt><dd>The x-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1837
         *      <dt>y</dt><dd>The y-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1838
         *      <dt>series</dt><dd>Reference to the series of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1839
         *      <dt>index</dt><dd>Index of the marker in the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1840
         *      <dt>seriesIndex</dt><dd>The `order` of the marker's series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1841
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1842
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1843
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1844
         * Broadcasts when `interactionType` is set to `marker` and a series marker has received a mousedown event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1845
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1846
         * @event markerEvent:mousedown
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1847
         * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1848
         * @param {EventFacade} e Event facade with the following additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1849
         *   properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1850
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1851
         *      <dt>categoryItem</dt><dd>Hash containing information about the category `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1852
         *      <dt>valueItem</dt><dd>Hash containing information about the value `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1853
         *      <dt>node</dt><dd>The dom node of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1854
         *      <dt>x</dt><dd>The x-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1855
         *      <dt>y</dt><dd>The y-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1856
         *      <dt>series</dt><dd>Reference to the series of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1857
         *      <dt>index</dt><dd>Index of the marker in the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1858
         *      <dt>seriesIndex</dt><dd>The `order` of the marker's series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1859
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1860
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1861
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1862
         * Broadcasts when `interactionType` is set to `marker` and a series marker has received a mouseup event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1863
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1864
         * @event markerEvent:mouseup
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1865
         * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1866
         * @param {EventFacade} e Event facade with the following additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1867
         *   properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1868
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1869
         *      <dt>categoryItem</dt><dd>Hash containing information about the category `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1870
         *      <dt>valueItem</dt><dd>Hash containing information about the value `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1871
         *      <dt>node</dt><dd>The dom node of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1872
         *      <dt>x</dt><dd>The x-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1873
         *      <dt>y</dt><dd>The y-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1874
         *      <dt>series</dt><dd>Reference to the series of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1875
         *      <dt>index</dt><dd>Index of the marker in the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1876
         *      <dt>seriesIndex</dt><dd>The `order` of the marker's series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1877
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1878
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1879
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1880
         * Broadcasts when `interactionType` is set to `marker` and a series marker has received a click event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1881
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1882
         * @event markerEvent:click
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1883
         * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1884
         * @param {EventFacade} e Event facade with the following additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1885
         *   properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1886
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1887
         *      <dt>categoryItem</dt><dd>Hash containing information about the category `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1888
         *      <dt>valueItem</dt><dd>Hash containing information about the value `Axis`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1889
         *      <dt>node</dt><dd>The dom node of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1890
         *      <dt>x</dt><dd>The x-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1891
         *      <dt>y</dt><dd>The y-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1892
         *      <dt>pageX</dt><dd>The x location of the event on the page (including scroll)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1893
         *      <dt>pageY</dt><dd>The y location of the event on the page (including scroll)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1894
         *      <dt>series</dt><dd>Reference to the series of the marker.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1895
         *      <dt>index</dt><dd>Index of the marker in the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1896
         *      <dt>seriesIndex</dt><dd>The `order` of the marker's series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1897
         *      <dt>originEvent</dt><dd>Underlying dom event.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1898
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1899
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1900
        this.fire("markerEvent:" + type, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1901
            originEvent: e,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1902
            pageX:pageX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1903
            pageY:pageY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1904
            categoryItem:items.category,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1905
            valueItem:items.value,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1906
            node:markerNode,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1907
            x:x,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1908
            y:y,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1909
            series:series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1910
            index:index,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1911
            seriesIndex:seriesIndex
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1912
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1913
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1914
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1915
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1916
     * Event handler for dataProviderChange.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1917
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1918
     * @method _dataProviderChangeHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1919
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1920
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1921
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1922
    _dataProviderChangeHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1923
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1924
        var dataProvider = e.newVal,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1925
            axes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1926
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1927
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1928
        this._seriesIndex = -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1929
        this._itemIndex = -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1930
        if(this instanceof Y.CartesianChart)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1931
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1932
            this.set("axes", this.get("axes"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1933
            this.set("seriesCollection", this.get("seriesCollection"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1934
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1935
        axes = this.get("axes");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1936
        if(axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1937
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1938
            for(i in axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1939
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1940
                if(axes.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1941
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1942
                    axis = axes[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1943
                    if(axis instanceof Y.Axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1944
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1945
                        if(axis.get("position") !== "none")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1946
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1947
                            this._addToAxesRenderQueue(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1948
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1949
                        axis.set("dataProvider", dataProvider);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1950
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1951
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1952
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1953
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1954
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1955
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1956
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1957
     * Event listener for toggling the tooltip. If a tooltip is visible, hide it. If not, it
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1958
     * will create and show a tooltip based on the event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1959
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1960
     * @method toggleTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1961
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1962
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1963
    toggleTooltip: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1964
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1965
        var tt = this.get("tooltip");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1966
        if(tt.visible)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1967
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1968
            this.hideTooltip();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1969
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1970
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1971
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1972
            tt.markerEventHandler.apply(this, [e]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1973
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1974
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1975
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1976
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1977
     * Shows a tooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1978
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1979
     * @method _showTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1980
     * @param {String} msg Message to dispaly in the tooltip.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1981
     * @param {Number} x x-coordinate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1982
     * @param {Number} y y-coordinate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1983
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1984
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1985
    _showTooltip: function(msg, x, y)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1986
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1987
        var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1988
            node = tt.node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1989
        if(msg)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1990
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1991
            tt.visible = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1992
            tt.setTextFunction(node, msg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1993
            node.setStyle("top", y + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1994
            node.setStyle("left", x + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1995
            node.setStyle("visibility", "visible");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1996
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1997
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1998
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1999
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2000
     * Positions the tooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2001
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2002
     * @method _positionTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2003
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2004
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2005
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2006
    _positionTooltip: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2007
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2008
        var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2009
            node = tt.node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2010
            cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2011
            x = (e.pageX + 10) - cb.getX(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2012
            y = (e.pageY + 10) - cb.getY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2013
        if(node)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2014
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2015
            node.setStyle("left", x + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2016
            node.setStyle("top", y + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2017
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2018
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2019
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2020
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2021
     * Hides the default tooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2022
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2023
     * @method hideTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2024
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2025
    hideTooltip: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2026
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2027
        var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2028
            node = tt.node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2029
        tt.visible = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2030
        node.set("innerHTML", "");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2031
        node.setStyle("left", -10000);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2032
        node.setStyle("top", -10000);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2033
        node.setStyle("visibility", "hidden");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2034
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2035
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2036
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2037
     * Adds a tooltip to the dom.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2038
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2039
     * @method _addTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2040
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2041
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2042
    _addTooltip: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2043
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2044
        var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2045
            id = this.get("id") + "_tooltip",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2046
            cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2047
            oldNode = DOCUMENT.getElementById(id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2048
        if(oldNode)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2049
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2050
            cb.removeChild(oldNode);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2051
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2052
        tt.node.set("id", id);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2053
        tt.node.setStyle("visibility", "hidden");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2054
        cb.appendChild(tt.node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2055
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2056
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2057
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2058
     * Updates the tooltip attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2059
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2060
     * @method _updateTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2061
     * @param {Object} val Object containing properties for the tooltip.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2062
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2063
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2064
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2065
    _updateTooltip: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2066
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2067
        var tt = this.get("tooltip") || this._getTooltip(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2068
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2069
            styles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2070
            node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2071
            props = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2072
                markerLabelFunction:"markerLabelFunction",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2073
                planarLabelFunction:"planarLabelFunction",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2074
                setTextFunction:"setTextFunction",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2075
                showEvent:"showEvent",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2076
                hideEvent:"hideEvent",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2077
                markerEventHandler:"markerEventHandler",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2078
                planarEventHandler:"planarEventHandler",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2079
                show:"show"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2080
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2081
        if(Y_Lang.isObject(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2082
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2083
            styles = val.styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2084
            node = Y.one(val.node) || tt.node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2085
            if(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2086
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2087
                for(i in styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2088
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2089
                    if(styles.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2090
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2091
                        node.setStyle(i, styles[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2092
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2093
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2094
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2095
            for(i in props)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2096
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2097
                if(val.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2098
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2099
                    tt[i] = val[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2100
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2101
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2102
            tt.node = node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2103
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2104
        return tt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2105
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2106
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2107
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2108
     * Default getter for `tooltip` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2109
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2110
     * @method _getTooltip
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2111
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2112
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2113
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2114
    _getTooltip: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2115
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2116
        var node = DOCUMENT.createElement("div"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2117
            tooltipClass = _getClassName("chart-tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2118
            tt = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2119
                setTextFunction: this._setText,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2120
                markerLabelFunction: this._tooltipLabelFunction,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2121
                planarLabelFunction: this._planarLabelFunction,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2122
                show: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2123
                hideEvent: "mouseout",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2124
                showEvent: "mouseover",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2125
                markerEventHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2126
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2127
                    var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2128
                    msg = tt.markerLabelFunction.apply(this, [e.categoryItem, e.valueItem, e.index, e.series, e.seriesIndex]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2129
                    this._showTooltip(msg, e.x + 10, e.y + 10);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2130
                },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2131
                planarEventHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2132
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2133
                    var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2134
                        msg ,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2135
                        categoryAxis = this.get("categoryAxis");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2136
                    msg = tt.planarLabelFunction.apply(this, [categoryAxis, e.valueItem, e.index, e.items, e.seriesIndex]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2137
                    this._showTooltip(msg, e.x + 10, e.y + 10);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2138
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2139
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2140
        node = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2141
        node.set("id", this.get("id") + "_tooltip");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2142
        node.setStyle("fontSize", "85%");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2143
        node.setStyle("opacity", "0.83");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2144
        node.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2145
        node.setStyle("paddingTop", "2px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2146
        node.setStyle("paddingRight", "5px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2147
        node.setStyle("paddingBottom", "4px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2148
        node.setStyle("paddingLeft", "2px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2149
        node.setStyle("backgroundColor", "#fff");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2150
        node.setStyle("border", "1px solid #dbdccc");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2151
        node.setStyle("pointerEvents", "none");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2152
        node.setStyle("zIndex", 3);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2153
        node.setStyle("whiteSpace", "noWrap");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2154
        node.setStyle("visibility", "hidden");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2155
        node.addClass(tooltipClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2156
        tt.node = Y.one(node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2157
        return tt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2158
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2159
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2160
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2161
     * Formats tooltip text when `interactionType` is `planar`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2162
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2163
     * @method _planarLabelFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2164
     * @param {Axis} categoryAxis Reference to the categoryAxis of the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2165
     * @param {Array} valueItems Array of objects for each series that has a data point in the coordinate plane of the event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2166
     * Each object contains the following data:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2167
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2168
     *      <dt>axis</dt><dd>The value axis of the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2169
     *      <dt>key</dt><dd>The key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2170
     *      <dt>value</dt><dd>The value for the series item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2171
     *      <dt>displayName</dt><dd>The display name of the series. (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2172
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2173
     *  @param {Number} index The index of the item within its series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2174
     *  @param {Array} seriesArray Array of series instances for each value item.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2175
     *  @param {Number} seriesIndex The index of the series in the `seriesCollection`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2176
     *  @return {String | HTML}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2177
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2178
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2179
    _planarLabelFunction: function(categoryAxis, valueItems, index, seriesArray)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2180
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2181
        var msg = DOCUMENT.createElement("div"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2182
            valueItem,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2183
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2184
            len = seriesArray.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2185
            axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2186
            categoryValue,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2187
            seriesValue,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2188
            series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2189
        if(categoryAxis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2190
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2191
            categoryValue = categoryAxis.get("labelFunction").apply(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2192
                this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2193
                [categoryAxis.getKeyValueAt(this.get("categoryKey"), index), categoryAxis.get("labelFormat")]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2194
            );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2195
            if(!Y_Lang.isObject(categoryValue))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2196
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2197
                categoryValue = DOCUMENT.createTextNode(categoryValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2198
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2199
            msg.appendChild(categoryValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2200
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2201
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2202
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2203
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2204
            series = seriesArray[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2205
            if(series.get("visible"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2206
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2207
                valueItem = valueItems[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2208
                axis = valueItem.axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2209
                seriesValue =  axis.get("labelFunction").apply(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2210
                    this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2211
                    [axis.getKeyValueAt(valueItem.key, index), axis.get("labelFormat")]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2212
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2213
                msg.appendChild(DOCUMENT.createElement("br"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2214
                msg.appendChild(DOCUMENT.createTextNode(valueItem.displayName));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2215
                msg.appendChild(DOCUMENT.createTextNode(": "));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2216
                if(!Y_Lang.isObject(seriesValue))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2217
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2218
                    seriesValue = DOCUMENT.createTextNode(seriesValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2219
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2220
                msg.appendChild(seriesValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2221
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2222
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2223
        return msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2224
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2225
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2226
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2227
     * Formats tooltip text when `interactionType` is `marker`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2228
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2229
     * @method _tooltipLabelFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2230
     * @param {Object} categoryItem An object containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2231
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2232
     *      <dt>axis</dt><dd>The axis to which the category is bound.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2233
     *      <dt>displayName</dt><dd>The display name set to the category (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2234
     *      <dt>key</dt><dd>The key of the category.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2235
     *      <dt>value</dt><dd>The value of the category</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2236
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2237
     * @param {Object} valueItem An object containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2238
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2239
     *      <dt>axis</dt><dd>The axis to which the item's series is bound.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2240
     *      <dt>displayName</dt><dd>The display name of the series. (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2241
     *      <dt>key</dt><dd>The key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2242
     *      <dt>value</dt><dd>The value for the series item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2243
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2244
     * @return {String | HTML}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2245
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2246
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2247
    _tooltipLabelFunction: function(categoryItem, valueItem)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2248
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2249
        var msg = DOCUMENT.createElement("div"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2250
            categoryValue = categoryItem.axis.get("labelFunction").apply(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2251
                this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2252
                [categoryItem.value, categoryItem.axis.get("labelFormat")]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2253
            ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2254
            seriesValue = valueItem.axis.get("labelFunction").apply(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2255
                this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2256
                [valueItem.value, valueItem.axis.get("labelFormat")]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2257
            );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2258
        msg.appendChild(DOCUMENT.createTextNode(categoryItem.displayName));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2259
        msg.appendChild(DOCUMENT.createTextNode(": "));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2260
        if(!Y_Lang.isObject(categoryValue))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2261
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2262
            categoryValue = DOCUMENT.createTextNode(categoryValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2263
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2264
        msg.appendChild(categoryValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2265
        msg.appendChild(DOCUMENT.createElement("br"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2266
        msg.appendChild(DOCUMENT.createTextNode(valueItem.displayName));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2267
        msg.appendChild(DOCUMENT.createTextNode(": "));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2268
        if(!Y_Lang.isObject(seriesValue))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2269
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2270
            seriesValue = DOCUMENT.createTextNode(seriesValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2271
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2272
        msg.appendChild(seriesValue);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2273
        return msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2274
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2276
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2277
     * Event handler for the tooltipChange.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2278
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2279
     * @method _tooltipChangeHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2280
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2281
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2282
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2283
    _tooltipChangeHandler: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2284
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2285
        if(this.get("tooltip"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2286
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2287
            var tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2288
                node = tt.node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2289
                show = tt.show,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2290
                cb = this.get("contentBox");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2291
            if(node && show)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2292
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2293
                if(!cb.contains(node))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2294
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2295
                    this._addTooltip();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2296
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2297
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2298
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2299
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2300
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2301
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2302
     * Updates the content of text field. This method writes a value into a text field using
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2303
     * `appendChild`. If the value is a `String`, it is converted to a `TextNode` first.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2304
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2305
     * @method _setText
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2306
     * @param label {HTMLElement} label to be updated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2307
     * @param val {String} value with which to update the label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2308
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2309
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2310
    _setText: function(textField, val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2311
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2312
        textField.setContent("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2313
        if(Y_Lang.isNumber(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2314
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2315
            val = val + "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2316
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2317
        else if(!val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2318
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2319
            val = "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2320
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2321
        if(IS_STRING(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2322
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2323
            val = DOCUMENT.createTextNode(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2324
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2325
        textField.appendChild(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2326
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2327
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2328
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2329
     * Returns all the keys contained in a  `dataProvider`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2330
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2331
     * @method _getAllKeys
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2332
     * @param {Array} dp Collection of objects to be parsed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2333
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2334
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2335
    _getAllKeys: function(dp)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2336
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2337
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2338
            len = dp.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2339
            item,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2340
            key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2341
            keys = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2342
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2343
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2344
            item = dp[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2345
            for(key in item)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2346
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2347
                if(item.hasOwnProperty(key))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2348
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2349
                    keys[key] = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2350
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2351
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2352
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2353
        return keys;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2354
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2355
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2356
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2357
     * Constructs seriesKeys if not explicitly specified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2358
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2359
     * @method _buildSeriesKeys
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2360
     * @param {Array} dataProvider The dataProvider for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2361
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2362
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2363
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2364
    _buildSeriesKeys: function(dataProvider)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2365
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2366
        var allKeys,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2367
            catKey = this.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2368
            keys = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2369
            i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2370
        if(this._seriesKeysExplicitlySet)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2371
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2372
            return this._seriesKeys;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2373
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2374
        allKeys = this._getAllKeys(dataProvider);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2375
        for(i in allKeys)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2376
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2377
            if(allKeys.hasOwnProperty(i) && i !== catKey)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2378
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2379
                keys.push(i);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2380
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2381
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2382
        return keys;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2383
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2384
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2385
Y.ChartBase = ChartBase;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2386
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2387
 * The CartesianChart class creates a chart with horizontal and vertical axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2388
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2389
 * @class CartesianChart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2390
 * @extends ChartBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2391
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2392
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2393
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2394
Y.CartesianChart = Y.Base.create("cartesianChart", Y.Widget, [Y.ChartBase, Y.Renderer], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2395
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2396
     * @method renderUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2397
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2398
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2399
    renderUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2400
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2401
        var bb = this.get("boundingBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2402
            cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2403
            tt = this.get("tooltip"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2404
            overlay,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2405
            overlayClass = _getClassName("overlay");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2406
        //move the position = absolute logic to a class file
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2407
        bb.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2408
        cb.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2409
        this._addAxes();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2410
        this._addGridlines();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2411
        this._addSeries();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2412
        if(tt && tt.show)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2413
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2414
            this._addTooltip();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2415
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2416
        if(this.get("interactionType") === "planar")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2417
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2418
            overlay = DOCUMENT.createElement("div");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2419
            this.get("contentBox").appendChild(overlay);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2420
            this._overlay = Y.one(overlay);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2421
            this._overlay.set("id", this.get("id") + "_overlay");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2422
            this._overlay.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2423
            this._overlay.setStyle("background", "#fff");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2424
            this._overlay.setStyle("opacity", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2425
            this._overlay.addClass(overlayClass);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2426
            this._overlay.setStyle("zIndex", 4);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2427
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2428
        this._setAriaElements(bb, cb);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2429
        this._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2430
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2431
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2432
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2433
     * When `interactionType` is set to `planar`, listens for mouse move events and fires `planarEvent:mouseover` or `planarEvent:mouseout`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2434
     * depending on the position of the mouse in relation to data points on the `Chart`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2435
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2436
     * @method _planarEventDispatcher
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2437
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2438
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2439
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2440
    _planarEventDispatcher: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2441
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2442
        var graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2443
            bb = this.get("boundingBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2444
            cb = graph.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2445
            isTouch = e && e.hasOwnProperty("changedTouches"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2446
            pageX = isTouch ? e.changedTouches[0].pageX : e.pageX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2447
            pageY = isTouch ? e.changedTouches[0].pageY : e.pageY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2448
            posX = pageX - bb.getX(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2449
            posY = pageY - bb.getY(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2450
            offset = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2451
                x: pageX - cb.getX(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2452
                y: pageY - cb.getY()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2453
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2454
            sc = graph.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2455
            series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2456
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2457
            index,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2458
            oldIndex = this._selectedIndex,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2459
            item,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2460
            items = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2461
            categoryItems = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2462
            valueItems = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2463
            direction = this.get("direction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2464
            hasMarkers,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2465
            catAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2466
            valAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2467
            coord,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2468
            //data columns and area data could be created on a graph level
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2469
            markerPlane,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2470
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2471
            coords;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2472
        e.halt(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2473
        if(direction === "horizontal")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2474
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2475
            catAxis = "x";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2476
            valAxis = "y";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2477
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2478
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2479
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2480
            valAxis = "x";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2481
            catAxis = "y";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2482
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2483
        coord = offset[catAxis];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2484
        if(sc)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2485
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2486
            len = sc.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2487
            while(i < len && !markerPlane)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2488
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2489
                if(sc[i])
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2490
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2491
                    markerPlane = sc[i].get(catAxis + "MarkerPlane");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2492
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2493
                i++;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2494
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2495
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2496
        if(markerPlane)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2497
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2498
            len = markerPlane.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2499
            for(i = 0; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2500
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2501
                if(coord <= markerPlane[i].end && coord >= markerPlane[i].start)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2502
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2503
                    index = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2504
                    break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2505
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2506
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2507
            len = sc.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2508
            for(i = 0; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2509
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2510
                series = sc[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2511
                coords = series.get(valAxis + "coords");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2512
                hasMarkers = series.get("markers");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2513
                if(hasMarkers && !isNaN(oldIndex) && oldIndex > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2514
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2515
                    series.updateMarkerState("mouseout", oldIndex);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2516
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2517
                if(coords && coords[index] > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2518
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2519
                    if(hasMarkers && !isNaN(index) && index > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2520
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2521
                        series.updateMarkerState("mouseover", index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2522
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2523
                    item = this.getSeriesItems(series, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2524
                    categoryItems.push(item.category);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2525
                    valueItems.push(item.value);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2526
                    items.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2527
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2528
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2529
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2530
            this._selectedIndex = index;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2531
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2532
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2533
             * Broadcasts when `interactionType` is set to `planar` and a series' marker plane has received a mouseover event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2534
             *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2535
             *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2536
             * @event planarEvent:mouseover
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2537
             * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2538
             * @param {EventFacade} e Event facade with the following additional
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2539
             *   properties:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2540
             *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2541
             *      <dt>categoryItem</dt><dd>An array of hashes, each containing information about the category `Axis` of each marker
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2542
             *      whose plane has been intersected.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2543
             *      <dt>valueItem</dt><dd>An array of hashes, each containing information about the value `Axis` of each marker whose
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2544
             *      plane has been intersected.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2545
             *      <dt>x</dt><dd>The x-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2546
             *      <dt>y</dt><dd>The y-coordinate of the mouse in relation to the Chart.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2547
             *      <dt>pageX</dt><dd>The x location of the event on the page (including scroll)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2548
             *      <dt>pageY</dt><dd>The y location of the event on the page (including scroll)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2549
             *      <dt>items</dt><dd>An array including all the series which contain a marker whose plane has been intersected.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2550
             *      <dt>index</dt><dd>Index of the markers in their respective series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2551
             *      <dt>originEvent</dt><dd>Underlying dom event.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2552
             *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2553
             */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2554
            /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2555
             * Broadcasts when `interactionType` is set to `planar` and a series' marker plane has received a mouseout event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2556
             *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2557
             * @event planarEvent:mouseout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2558
             * @preventable false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2559
             * @param {EventFacade} e
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2560
             */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2561
            if(index > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2562
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2563
                this.fire("planarEvent:mouseover", {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2564
                    categoryItem:categoryItems,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2565
                    valueItem:valueItems,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2566
                    x:posX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2567
                    y:posY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2568
                    pageX:pageX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2569
                    pageY:pageY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2570
                    items:items,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2571
                    index:index,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2572
                    originEvent:e
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2573
                });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2574
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2575
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2576
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2577
                this.fire("planarEvent:mouseout");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2578
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2579
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2580
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2581
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2582
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2583
     * Indicates the default series type for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2584
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2585
     * @property _type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2586
     * @type {String}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2587
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2588
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2589
    _type: "combo",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2591
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2592
     * Queue of axes instances that will be updated. This method is used internally to determine when all axes have been updated.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2593
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2594
     * @property _itemRenderQueue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2595
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2596
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2597
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2598
    _itemRenderQueue: null,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2599
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2600
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2601
     * Adds an `Axis` instance to the `_itemRenderQueue`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2602
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2603
     * @method _addToAxesRenderQueue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2604
     * @param {Axis} axis An `Axis` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2605
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2606
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2607
    _addToAxesRenderQueue: function(axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2608
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2609
        if(!this._itemRenderQueue)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2610
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2611
            this._itemRenderQueue = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2612
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2613
        if(Y.Array.indexOf(this._itemRenderQueue, axis) < 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2614
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2615
            this._itemRenderQueue.push(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2616
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2617
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2618
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2619
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2620
     * Adds axis instance to the appropriate array based on position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2621
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2622
     * @method _addToAxesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2623
     * @param {String} position The position of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2624
     * @param {Axis} axis The `Axis` instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2625
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2626
    _addToAxesCollection: function(position, axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2627
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2628
        var axesCollection = this.get(position + "AxesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2629
        if(!axesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2630
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2631
            axesCollection = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2632
            this.set(position + "AxesCollection", axesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2633
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2634
        axesCollection.push(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2635
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2636
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2637
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2638
     * Returns the default value for the `seriesCollection` attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2639
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2640
     * @method _getDefaultSeriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2641
     * @param {Array} val Array containing either `CartesianSeries` instances or objects containing data to construct series instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2642
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2643
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2644
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2645
    _getDefaultSeriesCollection: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2646
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2647
        var seriesCollection,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2648
            dataProvider = this.get("dataProvider");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2649
        if(dataProvider)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2650
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2651
            seriesCollection = this._parseSeriesCollection();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2652
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2653
        return seriesCollection;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2654
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2655
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2656
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2657
     * Parses and returns a series collection from an object and default properties.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2658
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2659
     * @method _parseSeriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2660
     * @param {Object} val Object contain properties for series being set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2661
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2662
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2663
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2664
    _parseSeriesCollection: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2665
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2666
        var dir = this.get("direction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2667
            seriesStyles = this.get("styles").series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2668
            stylesAreArray = seriesStyles && Y_Lang.isArray(seriesStyles),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2669
            stylesIndex,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2670
            setStyles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2671
            globalStyles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2672
            sc = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2673
            catAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2674
            valAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2675
            tempKeys = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2676
            series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2677
            seriesKeys = this.get("seriesKeys").concat(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2678
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2679
            index,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2680
            l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2681
            type = this.get("type"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2682
            key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2683
            catKey,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2684
            seriesKey,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2685
            graph,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2686
            orphans = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2687
            categoryKey = this.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2688
            showMarkers = this.get("showMarkers"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2689
            showAreaFill = this.get("showAreaFill"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2690
            showLines = this.get("showLines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2691
        val = val ? val.concat() : [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2692
        if(dir === "vertical")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2693
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2694
            catAxis = "yAxis";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2695
            catKey = "yKey";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2696
            valAxis = "xAxis";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2697
            seriesKey = "xKey";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2698
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2699
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2700
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2701
            catAxis = "xAxis";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2702
            catKey = "xKey";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2703
            valAxis = "yAxis";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2704
            seriesKey = "yKey";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2705
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2706
        l = val.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2707
        while(val && val.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2708
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2709
            series = val.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2710
            key = this._getBaseAttribute(series, seriesKey);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2711
            if(key)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2712
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2713
                index = Y.Array.indexOf(seriesKeys, key);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2714
                if(index > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2715
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2716
                    seriesKeys.splice(index, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2717
                    tempKeys.push(key);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2718
                    sc.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2719
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2720
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2721
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2722
                    orphans.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2723
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2724
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2725
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2726
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2727
                orphans.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2728
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2729
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2730
        while(orphans.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2731
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2732
            series = orphans.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2733
            if(seriesKeys.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2734
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2735
                key = seriesKeys.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2736
                this._setBaseAttribute(series, seriesKey, key);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2737
                tempKeys.push(key);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2738
                sc.push(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2739
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2740
            else if(series instanceof Y.CartesianSeries)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2741
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2742
                series.destroy(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2743
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2744
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2745
        if(seriesKeys.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2746
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2747
            tempKeys = tempKeys.concat(seriesKeys);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2748
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2749
        l = tempKeys.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2750
        for(i = 0; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2751
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2752
            series = sc[i] || {type:type};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2753
            if(series instanceof Y.CartesianSeries)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2754
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2755
                this._parseSeriesAxes(series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2756
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2757
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2758
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2759
                series[catKey] = series[catKey] || categoryKey;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2760
                series[seriesKey] = series[seriesKey] || seriesKeys.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2761
                series[catAxis] = this._getCategoryAxis();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2762
                series[valAxis] = this._getSeriesAxis(series[seriesKey]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2763
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2764
                series.type = series.type || type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2765
                series.direction = series.direction || dir;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2766
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2767
                if(series.type === "combo" ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2768
                    series.type === "stackedcombo" ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2769
                    series.type === "combospline" ||
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2770
                    series.type === "stackedcombospline")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2771
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2772
                    if(showAreaFill !== null)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2773
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2774
                        series.showAreaFill = (series.showAreaFill !== null && series.showAreaFill !== undefined) ?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2775
                                               series.showAreaFill : showAreaFill;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2776
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2777
                    if(showMarkers !== null)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2778
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2779
                        series.showMarkers = (series.showMarkers !== null && series.showMarkers !== undefined) ? series.showMarkers : showMarkers;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2780
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2781
                    if(showLines !== null)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2782
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2783
                        series.showLines = (series.showLines !== null && series.showLines !== undefined) ? series.showLines : showLines;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2784
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2785
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2786
                if(seriesStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2787
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2788
                    stylesIndex = stylesAreArray ? i : series[seriesKey];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2789
                    globalStyles = seriesStyles[stylesIndex];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2790
                    if(globalStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2791
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2792
                        setStyles = series.styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2793
                        if(setStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2794
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2795
                            series.styles = this._mergeStyles(setStyles, globalStyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2796
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2797
                        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2798
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2799
                            series.styles = globalStyles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2800
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2801
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2802
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2803
                sc[i] = series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2804
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2805
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2806
        if(sc)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2807
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2808
            graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2809
            graph.set("seriesCollection", sc);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2810
            sc = graph.get("seriesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2811
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2812
        return sc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2813
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2814
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2815
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2816
     * Parse and sets the axes for a series instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2817
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2818
     * @method _parseSeriesAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2819
     * @param {CartesianSeries} series A `CartesianSeries` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2820
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2821
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2822
    _parseSeriesAxes: function(series)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2823
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2824
        var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2825
            xAxis = series.get("xAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2826
            yAxis = series.get("yAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2827
            YAxis = Y.Axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2828
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2829
        if(xAxis && !(xAxis instanceof YAxis) && Y_Lang.isString(xAxis) && axes.hasOwnProperty(xAxis))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2830
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2831
            axis = axes[xAxis];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2832
            if(axis instanceof YAxis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2833
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2834
                series.set("xAxis", axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2835
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2836
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2837
        if(yAxis && !(yAxis instanceof YAxis) && Y_Lang.isString(yAxis) && axes.hasOwnProperty(yAxis))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2838
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2839
            axis = axes[yAxis];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2840
            if(axis instanceof YAxis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2841
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2842
                series.set("yAxis", axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2843
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2844
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2845
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2846
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2847
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2848
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2849
     * Returns the category axis instance for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2850
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2851
     * @method _getCategoryAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2852
     * @return Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2853
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2854
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2855
    _getCategoryAxis: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2856
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2857
        var axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2858
            axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2859
            categoryAxisName = this.get("categoryAxisName") || this.get("categoryKey");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2860
        axis = axes[categoryAxisName];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2861
        return axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2862
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2863
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2864
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2865
     * Returns the value axis for a series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2866
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2867
     * @method _getSeriesAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2868
     * @param {String} key The key value used to determine the axis instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2869
     * @return Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2870
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2871
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2872
    _getSeriesAxis:function(key, axisName)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2873
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2874
        var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2875
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2876
            keys,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2877
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2878
        if(axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2879
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2880
            if(axisName && axes.hasOwnProperty(axisName))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2881
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2882
                axis = axes[axisName];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2883
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2884
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2885
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2886
                for(i in axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2887
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2888
                    if(axes.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2889
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2890
                        keys = axes[i].get("keys");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2891
                        if(keys && keys.hasOwnProperty(key))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2892
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2893
                            axis = axes[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2894
                            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2895
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2896
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2897
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2898
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2899
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2900
        return axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2901
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2902
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2903
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2904
     * Gets an attribute from an object, using a getter for Base objects and a property for object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2905
     * literals. Used for determining attributes from series/axis references which can be an actual class instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2906
     * or a hash of properties that will be used to create a class instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2907
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2908
     * @method _getBaseAttribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2909
     * @param {Object} item Object or instance in which the attribute resides.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2910
     * @param {String} key Attribute whose value will be returned.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2911
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2912
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2913
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2914
    _getBaseAttribute: function(item, key)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2915
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2916
        if(item instanceof Y.Base)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2917
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2918
            return item.get(key);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2919
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2920
        if(item.hasOwnProperty(key))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2921
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2922
            return item[key];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2923
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2924
        return null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2925
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2926
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2927
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2928
     * Sets an attribute on an object, using a setter of Base objects and a property for object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2929
     * literals. Used for setting attributes on a Base class, either directly or to be stored in an object literal
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2930
     * for use at instantiation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2931
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2932
     * @method _setBaseAttribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2933
     * @param {Object} item Object or instance in which the attribute resides.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2934
     * @param {String} key Attribute whose value will be assigned.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2935
     * @param {Object} value Value to be assigned to the attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2936
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2937
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2938
    _setBaseAttribute: function(item, key, value)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2939
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2940
        if(item instanceof Y.Base)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2941
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2942
            item.set(key, value);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2943
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2944
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2945
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2946
            item[key] = value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2947
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2948
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2949
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2950
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2951
     * Creates `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2952
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2953
     * @method _setAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2954
     * @param {Object} val Object containing `Axis` instances or objects in which to construct `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2955
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2956
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2957
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2958
    _setAxes: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2959
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2960
        var hash = this._parseAxes(val),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2961
            axes = {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2962
            axesAttrs = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2963
                edgeOffset: "edgeOffset",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2964
                calculateEdgeOffset: "calculateEdgeOffset",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2965
                position: "position",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2966
                overlapGraph:"overlapGraph",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2967
                labelValues: "labelValues",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2968
                hideFirstMajorUnit: "hideFirstMajorUnit",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2969
                hideLastMajorUnit: "hideLastMajorUnit",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2970
                labelFunction:"labelFunction",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2971
                labelFunctionScope:"labelFunctionScope",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2972
                labelFormat:"labelFormat",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2973
                appendLabelFunction: "appendLabelFunction",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2974
                appendTitleFunction: "appendTitleFunction",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2975
                maximum:"maximum",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2976
                minimum:"minimum",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2977
                roundingMethod:"roundingMethod",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2978
                alwaysShowZero:"alwaysShowZero",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2979
                title:"title",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2980
                width:"width",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2981
                height:"height"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2982
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2983
            dp = this.get("dataProvider"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2984
            ai,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2985
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2986
            pos,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2987
            axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2988
            axisPosition,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2989
            dh,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2990
            AxisClass,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2991
            config,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2992
            axesCollection;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2993
        for(i in hash)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2994
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2995
            if(hash.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2996
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2997
                dh = hash[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2998
                if(dh instanceof Y.Axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2999
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3000
                    axis = dh;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3001
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3002
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3003
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3004
                    axis = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3005
                    config = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3006
                    config.dataProvider = dh.dataProvider || dp;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3007
                    config.keys = dh.keys;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3008
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3009
                    if(dh.hasOwnProperty("roundingUnit"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3010
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3011
                        config.roundingUnit = dh.roundingUnit;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3012
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3013
                    pos = dh.position;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3014
                    if(dh.styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3015
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3016
                        config.styles = dh.styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3017
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3018
                    config.position = dh.position;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3019
                    for(ai in axesAttrs)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3020
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3021
                        if(axesAttrs.hasOwnProperty(ai) && dh.hasOwnProperty(ai))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3022
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3023
                            config[ai] = dh[ai];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3024
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3025
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3026
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3027
                    //only check for existing axis if we constructed the default axes already
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3028
                    if(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3029
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3030
                        axis = this.getAxisByKey(i);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3031
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3032
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3033
                    if(axis && axis instanceof Y.Axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3034
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3035
                        axisPosition = axis.get("position");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3036
                        if(pos !== axisPosition)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3037
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3038
                            if(axisPosition !== "none")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3039
                            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3040
                                axesCollection = this.get(axisPosition + "AxesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3041
                                axesCollection.splice(Y.Array.indexOf(axesCollection, axis), 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3042
                            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3043
                            if(pos !== "none")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3044
                            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3045
                                this._addToAxesCollection(pos, axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3046
                            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3047
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3048
                        axis.setAttrs(config);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3049
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3050
                    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3051
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3052
                        AxisClass = this._getAxisClass(dh.type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3053
                        axis = new AxisClass(config);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3054
                        axis.after("axisRendered", Y.bind(this._itemRendered, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3055
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3056
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3057
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3058
                if(axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3059
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3060
                    axesCollection = this.get(pos + "AxesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3061
                    if(axesCollection && Y.Array.indexOf(axesCollection, axis) > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3062
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3063
                        axis.set("overlapGraph", false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3064
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3065
                    axes[i] = axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3066
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3067
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3068
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3069
        return axes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3070
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3071
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3072
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3073
     * Adds axes to the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3074
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3075
     * @method _addAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3076
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3077
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3078
    _addAxes: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3079
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3080
        var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3081
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3082
            axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3083
            pos,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3084
            w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3085
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3086
            node = Y.Node.one(this._parentNode);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3087
        if(!this._axesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3088
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3089
            this._axesCollection = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3090
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3091
        for(i in axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3092
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3093
            if(axes.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3094
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3095
                axis = axes[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3096
                if(axis instanceof Y.Axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3097
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3098
                    if(!w)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3099
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3100
                        this.set("width", node.get("offsetWidth"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3101
                        w = this.get("width");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3102
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3103
                    if(!h)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3104
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3105
                        this.set("height", node.get("offsetHeight"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3106
                        h = this.get("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3107
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3108
                    this._addToAxesRenderQueue(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3109
                    pos = axis.get("position");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3110
                    if(!this.get(pos + "AxesCollection"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3111
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3112
                        this.set(pos + "AxesCollection", [axis]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3113
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3114
                    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3115
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3116
                        this.get(pos + "AxesCollection").push(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3117
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3118
                    this._axesCollection.push(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3119
                    if(axis.get("keys").hasOwnProperty(this.get("categoryKey")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3120
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3121
                        this.set("categoryAxis", axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3122
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3123
                    axis.render(this.get("contentBox"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3124
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3125
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3126
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3127
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3128
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3129
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3130
     * Renders the Graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3131
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3132
     * @method _addSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3133
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3134
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3135
    _addSeries: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3136
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3137
        var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3138
        graph.render(this.get("contentBox"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3139
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3140
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3141
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3142
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3143
     * Adds gridlines to the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3144
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3145
     * @method _addGridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3146
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3147
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3148
    _addGridlines: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3149
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3150
        var graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3151
            hgl = this.get("horizontalGridlines"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3152
            vgl = this.get("verticalGridlines"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3153
            direction = this.get("direction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3154
            leftAxesCollection = this.get("leftAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3155
            rightAxesCollection = this.get("rightAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3156
            bottomAxesCollection = this.get("bottomAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3157
            topAxesCollection = this.get("topAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3158
            seriesAxesCollection,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3159
            catAxis = this.get("categoryAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3160
            hAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3161
            vAxis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3162
        if(this._axesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3163
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3164
            seriesAxesCollection = this._axesCollection.concat();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3165
            seriesAxesCollection.splice(Y.Array.indexOf(seriesAxesCollection, catAxis), 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3166
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3167
        if(hgl)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3168
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3169
            if(leftAxesCollection && leftAxesCollection[0])
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3170
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3171
                hAxis = leftAxesCollection[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3172
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3173
            else if(rightAxesCollection && rightAxesCollection[0])
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3174
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3175
                hAxis = rightAxesCollection[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3176
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3177
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3178
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3179
                hAxis = direction === "horizontal" ? catAxis : seriesAxesCollection[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3180
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3181
            if(!this._getBaseAttribute(hgl, "axis") && hAxis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3182
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3183
                this._setBaseAttribute(hgl, "axis", hAxis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3184
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3185
            if(this._getBaseAttribute(hgl, "axis"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3186
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3187
                graph.set("horizontalGridlines", hgl);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3188
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3189
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3190
        if(vgl)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3191
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3192
            if(bottomAxesCollection && bottomAxesCollection[0])
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3193
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3194
                vAxis = bottomAxesCollection[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3195
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3196
            else if (topAxesCollection && topAxesCollection[0])
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3197
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3198
                vAxis = topAxesCollection[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3199
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3200
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3201
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3202
                vAxis = direction === "vertical" ? catAxis : seriesAxesCollection[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3203
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3204
            if(!this._getBaseAttribute(vgl, "axis") && vAxis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3205
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3206
                this._setBaseAttribute(vgl, "axis", vAxis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3207
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3208
            if(this._getBaseAttribute(vgl, "axis"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3209
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3210
                graph.set("verticalGridlines", vgl);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3211
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3212
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3213
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3214
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3215
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3216
     * Default Function for the axes attribute.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3217
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3218
     * @method _getDefaultAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3219
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3220
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3221
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3222
    _getDefaultAxes: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3223
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3224
        var axes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3225
        if(this.get("dataProvider"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3226
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3227
            axes = this._parseAxes();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3228
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3229
        return axes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3230
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3231
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3232
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3233
     * Generates and returns a key-indexed object containing `Axis` instances or objects used to create `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3234
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3235
     * @method _parseAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3236
     * @param {Object} axes Object containing `Axis` instances or `Axis` attributes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3237
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3238
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3239
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3240
    _parseAxes: function(axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3241
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3242
        var catKey = this.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3243
            axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3244
            attr,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3245
            keys,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3246
            newAxes = {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3247
            claimedKeys = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3248
            newKeys = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3249
            categoryAxisName = this.get("categoryAxisName") || this.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3250
            valueAxisName = this.get("valueAxisName"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3251
            seriesKeys = this.get("seriesKeys").concat(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3252
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3253
            l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3254
            ii,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3255
            ll,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3256
            cIndex,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3257
            direction = this.get("direction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3258
            seriesPosition,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3259
            categoryPosition,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3260
            valueAxes = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3261
            seriesAxis = this.get("stacked") ? "stacked" : "numeric";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3262
        if(direction === "vertical")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3263
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3264
            seriesPosition = "bottom";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3265
            categoryPosition = "left";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3266
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3267
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3268
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3269
            seriesPosition = "left";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3270
            categoryPosition = "bottom";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3271
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3272
        if(axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3273
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3274
            for(i in axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3275
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3276
                if(axes.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3277
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3278
                    axis = axes[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3279
                    keys = this._getBaseAttribute(axis, "keys");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3280
                    attr = this._getBaseAttribute(axis, "type");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3281
                    if(attr === "time" || attr === "category")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3282
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3283
                        categoryAxisName = i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3284
                        this.set("categoryAxisName", i);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3285
                        if(Y_Lang.isArray(keys) && keys.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3286
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3287
                            catKey = keys[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3288
                            this.set("categoryKey", catKey);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3289
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3290
                        newAxes[i] = axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3291
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3292
                    else if(i === categoryAxisName)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3293
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3294
                        newAxes[i] = axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3295
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3296
                    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3297
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3298
                        newAxes[i] = axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3299
                        if(i !== valueAxisName && keys && Y_Lang.isArray(keys))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3300
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3301
                            ll = keys.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3302
                            for(ii = 0; ii < ll; ++ii)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3303
                            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3304
                                claimedKeys.push(keys[ii]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3305
                            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3306
                            valueAxes.push(newAxes[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3307
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3308
                        if(!(this._getBaseAttribute(newAxes[i], "type")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3309
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3310
                            this._setBaseAttribute(newAxes[i], "type", seriesAxis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3311
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3312
                        if(!(this._getBaseAttribute(newAxes[i], "position")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3313
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3314
                            this._setBaseAttribute(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3315
                                newAxes[i],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3316
                                "position",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3317
                                this._getDefaultAxisPosition(newAxes[i], valueAxes, seriesPosition)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3318
                            );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3319
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3320
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3321
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3322
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3323
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3324
        cIndex = Y.Array.indexOf(seriesKeys, catKey);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3325
        if(cIndex > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3326
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3327
            seriesKeys.splice(cIndex, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3328
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3329
        l = seriesKeys.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3330
        for(i = 0; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3331
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3332
            cIndex = Y.Array.indexOf(claimedKeys, seriesKeys[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3333
            if(cIndex > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3334
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3335
                newKeys = newKeys.concat(claimedKeys.splice(cIndex, 1));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3336
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3337
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3338
        claimedKeys = newKeys.concat(claimedKeys);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3339
        l = claimedKeys.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3340
        for(i = 0; i < l; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3341
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3342
            cIndex = Y.Array.indexOf(seriesKeys, claimedKeys[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3343
            if(cIndex > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3344
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3345
                seriesKeys.splice(cIndex, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3346
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3347
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3348
        if(!newAxes.hasOwnProperty(categoryAxisName))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3349
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3350
            newAxes[categoryAxisName] = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3351
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3352
        if(!(this._getBaseAttribute(newAxes[categoryAxisName], "keys")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3353
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3354
            this._setBaseAttribute(newAxes[categoryAxisName], "keys", [catKey]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3355
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3356
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3357
        if(!(this._getBaseAttribute(newAxes[categoryAxisName], "position")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3358
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3359
            this._setBaseAttribute(newAxes[categoryAxisName], "position", categoryPosition);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3360
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3361
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3362
        if(!(this._getBaseAttribute(newAxes[categoryAxisName], "type")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3363
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3364
            this._setBaseAttribute(newAxes[categoryAxisName], "type", this.get("categoryType"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3365
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3366
        if(!newAxes.hasOwnProperty(valueAxisName) && seriesKeys && seriesKeys.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3367
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3368
            newAxes[valueAxisName] = {keys:seriesKeys};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3369
            valueAxes.push(newAxes[valueAxisName]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3370
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3371
        if(claimedKeys.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3372
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3373
            if(seriesKeys.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3374
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3375
                seriesKeys = claimedKeys.concat(seriesKeys);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3376
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3377
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3378
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3379
                seriesKeys = claimedKeys;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3380
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3381
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3382
        if(newAxes.hasOwnProperty(valueAxisName))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3383
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3384
            if(!(this._getBaseAttribute(newAxes[valueAxisName], "position")))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3385
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3386
                this._setBaseAttribute(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3387
                    newAxes[valueAxisName],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3388
                    "position",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3389
                    this._getDefaultAxisPosition(newAxes[valueAxisName], valueAxes, seriesPosition)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3390
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3391
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3392
            this._setBaseAttribute(newAxes[valueAxisName], "type", seriesAxis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3393
            this._setBaseAttribute(newAxes[valueAxisName], "keys", seriesKeys);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3394
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3395
        if(!this._seriesKeysExplicitlySet)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3396
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3397
            this.set("seriesKeys", seriesKeys, {src: "internal"});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3398
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3399
        return newAxes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3400
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3401
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3402
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3403
     * Determines the position of an axis when one is not specified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3404
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3405
     * @method _getDefaultAxisPosition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3406
     * @param {Axis} axis `Axis` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3407
     * @param {Array} valueAxes Array of `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3408
     * @param {String} position Default position depending on the direction of the chart and type of axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3409
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3410
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3411
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3412
    _getDefaultAxisPosition: function(axis, valueAxes, position)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3413
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3414
        var direction = this.get("direction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3415
            i = Y.Array.indexOf(valueAxes, axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3416
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3417
        if(valueAxes[i - 1] && valueAxes[i - 1].position)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3418
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3419
            if(direction === "horizontal")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3420
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3421
                if(valueAxes[i - 1].position === "left")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3422
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3423
                    position = "right";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3424
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3425
                else if(valueAxes[i - 1].position === "right")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3426
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3427
                    position = "left";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3428
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3429
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3430
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3431
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3432
                if (valueAxes[i -1].position === "bottom")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3433
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3434
                    position = "top";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3435
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3436
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3437
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3438
                    position = "bottom";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3439
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3440
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3441
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3442
        return position;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3443
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3444
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3445
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3446
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3447
     * Returns an object literal containing a categoryItem and a valueItem for a given series index. Below is the structure of each:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3448
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3449
     * @method getSeriesItems
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3450
     * @param {CartesianSeries} series Reference to a series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3451
     * @param {Number} index Index of the specified item within a series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3452
     * @return Object An object literal containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3453
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3454
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3455
     *      <dt>categoryItem</dt><dd>Object containing the following data related to the category axis of the series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3456
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3457
     *      <dt>axis</dt><dd>Reference to the category axis of the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3458
     *      <dt>key</dt><dd>Category key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3459
     *      <dt>value</dt><dd>Value on the axis corresponding to the series index.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3460
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3461
     *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3462
     *      <dt>valueItem</dt><dd>Object containing the following data related to the category axis of the series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3463
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3464
     *      <dt>axis</dt><dd>Reference to the value axis of the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3465
     *      <dt>key</dt><dd>Value key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3466
     *      <dt>value</dt><dd>Value on the axis corresponding to the series index.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3467
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3468
     *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3469
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3470
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3471
    getSeriesItems: function(series, index)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3472
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3473
        var xAxis = series.get("xAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3474
            yAxis = series.get("yAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3475
            xKey = series.get("xKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3476
            yKey = series.get("yKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3477
            categoryItem,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3478
            valueItem;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3479
        if(this.get("direction") === "vertical")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3480
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3481
            categoryItem = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3482
                axis:yAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3483
                key:yKey,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3484
                value:yAxis.getKeyValueAt(yKey, index)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3485
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3486
            valueItem = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3487
                axis:xAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3488
                key:xKey,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3489
                value: xAxis.getKeyValueAt(xKey, index)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3490
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3491
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3492
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3493
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3494
            valueItem = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3495
                axis:yAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3496
                key:yKey,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3497
                value:yAxis.getKeyValueAt(yKey, index)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3498
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3499
            categoryItem = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3500
                axis:xAxis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3501
                key:xKey,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3502
                value: xAxis.getKeyValueAt(xKey, index)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3503
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3504
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3505
        categoryItem.displayName = series.get("categoryDisplayName");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3506
        valueItem.displayName = series.get("valueDisplayName");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3507
        categoryItem.value = categoryItem.axis.getKeyValueAt(categoryItem.key, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3508
        valueItem.value = valueItem.axis.getKeyValueAt(valueItem.key, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3509
        return {category:categoryItem, value:valueItem};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3510
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3511
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3512
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3513
     * Handler for sizeChanged event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3514
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3515
     * @method _sizeChanged
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3516
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3517
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3518
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3519
    _sizeChanged: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3520
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3521
        if(this._axesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3522
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3523
            var ac = this._axesCollection,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3524
                i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3525
                l = ac.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3526
            for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3527
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3528
                this._addToAxesRenderQueue(ac[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3529
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3530
            this._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3531
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3532
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3533
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3534
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3535
     * Returns the maximum distance in pixels that the extends outside the top bounds of all vertical axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3536
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3537
     * @method _getTopOverflow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3538
     * @param {Array} set1 Collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3539
     * @param {Array} set2 Seconf collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3540
     * @param {Number} width Width of the axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3541
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3542
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3543
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3544
    _getTopOverflow: function(set1, set2, height)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3545
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3546
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3547
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3548
            overflow = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3549
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3550
        if(set1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3551
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3552
            len = set1.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3553
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3554
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3555
                axis = set1[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3556
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3557
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3558
                    Math.abs(axis.getMaxLabelBounds().top) - axis.getEdgeOffset(axis.get("styles").majorTicks.count, height)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3559
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3560
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3561
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3562
        if(set2)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3563
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3564
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3565
            len = set2.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3566
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3567
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3568
                axis = set2[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3569
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3570
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3571
                    Math.abs(axis.getMaxLabelBounds().top) - axis.getEdgeOffset(axis.get("styles").majorTicks.count, height)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3572
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3573
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3574
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3575
        return overflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3576
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3577
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3578
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3579
     * Returns the maximum distance in pixels that the extends outside the right bounds of all horizontal axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3580
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3581
     * @method _getRightOverflow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3582
     * @param {Array} set1 Collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3583
     * @param {Array} set2 Seconf collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3584
     * @param {Number} width Width of the axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3585
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3586
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3587
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3588
    _getRightOverflow: function(set1, set2, width)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3589
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3590
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3591
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3592
            overflow = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3593
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3594
        if(set1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3595
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3596
            len = set1.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3597
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3598
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3599
                axis = set1[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3600
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3601
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3602
                    axis.getMaxLabelBounds().right - axis.getEdgeOffset(axis.get("styles").majorTicks.count, width)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3603
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3604
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3605
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3606
        if(set2)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3607
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3608
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3609
            len = set2.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3610
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3611
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3612
                axis = set2[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3613
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3614
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3615
                    axis.getMaxLabelBounds().right - axis.getEdgeOffset(axis.get("styles").majorTicks.count, width)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3616
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3617
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3618
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3619
        return overflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3620
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3621
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3622
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3623
     * Returns the maximum distance in pixels that the extends outside the left bounds of all horizontal axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3624
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3625
     * @method _getLeftOverflow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3626
     * @param {Array} set1 Collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3627
     * @param {Array} set2 Seconf collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3628
     * @param {Number} width Width of the axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3629
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3630
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3631
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3632
    _getLeftOverflow: function(set1, set2, width)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3633
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3634
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3635
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3636
            overflow = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3637
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3638
        if(set1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3639
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3640
            len = set1.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3641
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3642
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3643
                axis = set1[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3644
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3645
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3646
                    Math.abs(axis.getMinLabelBounds().left) - axis.getEdgeOffset(axis.get("styles").majorTicks.count, width)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3647
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3648
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3649
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3650
        if(set2)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3651
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3652
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3653
            len = set2.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3654
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3655
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3656
                axis = set2[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3657
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3658
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3659
                    Math.abs(axis.getMinLabelBounds().left) - axis.getEdgeOffset(axis.get("styles").majorTicks.count, width)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3660
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3661
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3662
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3663
        return overflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3664
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3665
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3666
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3667
     * Returns the maximum distance in pixels that the extends outside the bottom bounds of all vertical axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3668
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3669
     * @method _getBottomOverflow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3670
     * @param {Array} set1 Collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3671
     * @param {Array} set2 Seconf collection of axes to check.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3672
     * @param {Number} height Height of the axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3673
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3674
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3675
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3676
    _getBottomOverflow: function(set1, set2, height)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3677
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3678
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3679
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3680
            overflow = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3681
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3682
        if(set1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3683
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3684
            len = set1.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3685
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3686
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3687
                axis = set1[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3688
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3689
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3690
                    axis.getMinLabelBounds().bottom - axis.getEdgeOffset(axis.get("styles").majorTicks.count, height)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3691
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3692
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3693
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3694
        if(set2)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3695
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3696
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3697
            len = set2.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3698
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3699
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3700
                axis = set2[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3701
                overflow = Math.max(
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3702
                    overflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3703
                    axis.getMinLabelBounds().bottom - axis.getEdgeOffset(axis.get("styles").majorTicks.count, height)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3704
                );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3705
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3706
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3707
        return overflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3708
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3709
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3710
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3711
     * Redraws and position all the components of the chart instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3712
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3713
     * @method _redraw
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3714
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3715
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3716
    _redraw: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3717
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3718
        if(this._drawing)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3719
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3720
            this._callLater = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3721
            return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3722
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3723
        this._drawing = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3724
        this._callLater = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3725
        var w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3726
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3727
            leftPaneWidth = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3728
            rightPaneWidth = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3729
            topPaneHeight = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3730
            bottomPaneHeight = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3731
            leftAxesCollection = this.get("leftAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3732
            rightAxesCollection = this.get("rightAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3733
            topAxesCollection = this.get("topAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3734
            bottomAxesCollection = this.get("bottomAxesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3735
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3736
            l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3737
            axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3738
            graphOverflow = "visible",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3739
            graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3740
            topOverflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3741
            bottomOverflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3742
            leftOverflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3743
            rightOverflow,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3744
            graphWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3745
            graphHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3746
            graphX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3747
            graphY,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3748
            allowContentOverflow = this.get("allowContentOverflow"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3749
            diff,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3750
            rightAxesXCoords,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3751
            leftAxesXCoords,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3752
            topAxesYCoords,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3753
            bottomAxesYCoords,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3754
            graphRect = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3755
        if(leftAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3756
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3757
            leftAxesXCoords = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3758
            l = leftAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3759
            for(i = l - 1; i > -1; --i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3760
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3761
                leftAxesXCoords.unshift(leftPaneWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3762
                leftPaneWidth += leftAxesCollection[i].get("width");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3763
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3764
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3765
        if(rightAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3766
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3767
            rightAxesXCoords = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3768
            l = rightAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3769
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3770
            for(i = l - 1; i > -1; --i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3771
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3772
                rightPaneWidth += rightAxesCollection[i].get("width");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3773
                rightAxesXCoords.unshift(w - rightPaneWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3774
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3775
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3776
        if(topAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3777
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3778
            topAxesYCoords = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3779
            l = topAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3780
            for(i = l - 1; i > -1; --i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3781
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3782
                topAxesYCoords.unshift(topPaneHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3783
                topPaneHeight += topAxesCollection[i].get("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3784
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3785
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3786
        if(bottomAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3787
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3788
            bottomAxesYCoords = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3789
            l = bottomAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3790
            for(i = l - 1; i > -1; --i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3791
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3792
                bottomPaneHeight += bottomAxesCollection[i].get("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3793
                bottomAxesYCoords.unshift(h - bottomPaneHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3794
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3795
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3796
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3797
        graphWidth = w - (leftPaneWidth + rightPaneWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3798
        graphHeight = h - (bottomPaneHeight + topPaneHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3799
        graphRect.left = leftPaneWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3800
        graphRect.top = topPaneHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3801
        graphRect.bottom = h - bottomPaneHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3802
        graphRect.right = w - rightPaneWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3803
        if(!allowContentOverflow)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3804
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3805
            topOverflow = this._getTopOverflow(leftAxesCollection, rightAxesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3806
            bottomOverflow = this._getBottomOverflow(leftAxesCollection, rightAxesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3807
            leftOverflow = this._getLeftOverflow(bottomAxesCollection, topAxesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3808
            rightOverflow = this._getRightOverflow(bottomAxesCollection, topAxesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3809
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3810
            diff = topOverflow - topPaneHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3811
            if(diff > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3812
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3813
                graphRect.top = topOverflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3814
                if(topAxesYCoords)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3815
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3816
                    i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3817
                    l = topAxesYCoords.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3818
                    for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3819
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3820
                        topAxesYCoords[i] += diff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3821
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3822
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3823
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3824
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3825
            diff = bottomOverflow - bottomPaneHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3826
            if(diff > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3827
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3828
                graphRect.bottom = h - bottomOverflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3829
                if(bottomAxesYCoords)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3830
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3831
                    i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3832
                    l = bottomAxesYCoords.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3833
                    for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3834
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3835
                        bottomAxesYCoords[i] -= diff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3836
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3837
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3838
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3839
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3840
            diff = leftOverflow - leftPaneWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3841
            if(diff > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3842
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3843
                graphRect.left = leftOverflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3844
                if(leftAxesXCoords)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3845
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3846
                    i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3847
                    l = leftAxesXCoords.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3848
                    for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3849
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3850
                        leftAxesXCoords[i] += diff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3851
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3852
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3853
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3854
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3855
            diff = rightOverflow - rightPaneWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3856
            if(diff > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3857
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3858
                graphRect.right = w - rightOverflow;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3859
                if(rightAxesXCoords)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3860
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3861
                    i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3862
                    l = rightAxesXCoords.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3863
                    for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3864
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3865
                        rightAxesXCoords[i] -= diff;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3866
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3867
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3868
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3869
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3870
        graphWidth = graphRect.right - graphRect.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3871
        graphHeight = graphRect.bottom - graphRect.top;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3872
        graphX = graphRect.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3873
        graphY = graphRect.top;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3874
        if(topAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3875
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3876
            l = topAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3877
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3878
            for(; i < l; i++)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3879
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3880
                axis = topAxesCollection[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3881
                if(axis.get("width") !== graphWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3882
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3883
                    axis.set("width", graphWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3884
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3885
                axis.get("boundingBox").setStyle("left", graphX + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3886
                axis.get("boundingBox").setStyle("top", topAxesYCoords[i] + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3887
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3888
            if(axis._hasDataOverflow())
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3889
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3890
                graphOverflow = "hidden";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3891
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3892
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3893
        if(bottomAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3894
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3895
            l = bottomAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3896
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3897
            for(; i < l; i++)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3898
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3899
                axis = bottomAxesCollection[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3900
                if(axis.get("width") !== graphWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3901
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3902
                    axis.set("width", graphWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3903
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3904
                axis.get("boundingBox").setStyle("left", graphX + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3905
                axis.get("boundingBox").setStyle("top", bottomAxesYCoords[i] + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3906
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3907
            if(axis._hasDataOverflow())
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3908
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3909
                graphOverflow = "hidden";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3910
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3911
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3912
        if(leftAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3913
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3914
            l = leftAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3915
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3916
            for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3917
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3918
                axis = leftAxesCollection[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3919
                axis.get("boundingBox").setStyle("top", graphY + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3920
                axis.get("boundingBox").setStyle("left", leftAxesXCoords[i] + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3921
                if(axis.get("height") !== graphHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3922
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3923
                    axis.set("height", graphHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3924
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3925
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3926
            if(axis._hasDataOverflow())
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3927
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3928
                graphOverflow = "hidden";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3929
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3930
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3931
        if(rightAxesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3932
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3933
            l = rightAxesCollection.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3934
            i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3935
            for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3936
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3937
                axis = rightAxesCollection[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3938
                axis.get("boundingBox").setStyle("top", graphY + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3939
                axis.get("boundingBox").setStyle("left", rightAxesXCoords[i] + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3940
                if(axis.get("height") !== graphHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3941
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3942
                    axis.set("height", graphHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3943
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3944
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3945
            if(axis._hasDataOverflow())
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3946
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3947
                graphOverflow = "hidden";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3948
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3949
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3950
        this._drawing = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3951
        if(this._callLater)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3952
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3953
            this._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3954
            return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3955
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3956
        if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3957
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3958
            graph.get("boundingBox").setStyle("left", graphX + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3959
            graph.get("boundingBox").setStyle("top", graphY + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3960
            graph.set("width", graphWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3961
            graph.set("height", graphHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3962
            graph.get("boundingBox").setStyle("overflow", graphOverflow);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3963
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3964
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3965
        if(this._overlay)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3966
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3967
            this._overlay.setStyle("left", graphX + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3968
            this._overlay.setStyle("top", graphY + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3969
            this._overlay.setStyle("width", graphWidth + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3970
            this._overlay.setStyle("height", graphHeight + "px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3971
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3972
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3973
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3974
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3975
     * Destructor implementation for the CartesianChart class. Calls destroy on all axes, series and the Graph instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3976
     * Removes the tooltip and overlay HTML elements.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3977
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3978
     * @method destructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3979
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3980
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3981
    destructor: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3982
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3983
        var graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3984
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3985
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3986
            seriesCollection = this.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3987
            axesCollection = this._axesCollection,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3988
            tooltip = this.get("tooltip").node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3989
        if(this._description)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3990
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3991
            this._description.empty();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3992
            this._description.remove(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3993
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3994
        if(this._liveRegion)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3995
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3996
            this._liveRegion.empty();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3997
            this._liveRegion.remove(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3998
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3999
        len = seriesCollection ? seriesCollection.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4000
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4001
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4002
            if(seriesCollection[i] instanceof Y.CartesianSeries)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4003
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4004
                seriesCollection[i].destroy(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4005
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4006
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4007
        len = axesCollection ? axesCollection.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4008
        for(i = 0; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4009
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4010
            if(axesCollection[i] instanceof Y.Axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4011
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4012
                axesCollection[i].destroy(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4013
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4014
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4015
        if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4016
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4017
            graph.destroy(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4018
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4019
        if(tooltip)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4020
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4021
            tooltip.empty();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4022
            tooltip.remove(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4023
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4024
        if(this._overlay)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4025
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4026
            this._overlay.empty();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4027
            this._overlay.remove(true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4028
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4029
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4030
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4031
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4032
     * Returns the appropriate message based on the key press.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4033
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4034
     * @method _getAriaMessage
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4035
     * @param {Number} key The keycode that was pressed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4036
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4037
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4038
    _getAriaMessage: function(key)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4039
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4040
        var msg = "",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4041
            series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4042
            items,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4043
            categoryItem,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4044
            valueItem,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4045
            seriesIndex = this._seriesIndex,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4046
            itemIndex = this._itemIndex,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4047
            seriesCollection = this.get("seriesCollection"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4048
            len = seriesCollection.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4049
            dataLength;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4050
        if(key % 2 === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4051
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4052
            if(len > 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4053
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4054
                if(key === 38)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4055
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4056
                    seriesIndex = seriesIndex < 1 ? len - 1 : seriesIndex - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4057
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4058
                else if(key === 40)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4059
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4060
                    seriesIndex = seriesIndex >= len - 1 ? 0 : seriesIndex + 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4061
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4062
                this._itemIndex = -1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4063
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4064
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4065
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4066
                seriesIndex = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4067
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4068
            this._seriesIndex = seriesIndex;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4069
            series = this.getSeries(parseInt(seriesIndex, 10));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4070
            msg = series.get("valueDisplayName") + " series.";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4071
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4072
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4073
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4074
            if(seriesIndex > -1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4075
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4076
                msg = "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4077
                series = this.getSeries(parseInt(seriesIndex, 10));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4078
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4079
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4080
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4081
                seriesIndex = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4082
                this._seriesIndex = seriesIndex;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4083
                series = this.getSeries(parseInt(seriesIndex, 10));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4084
                msg = series.get("valueDisplayName") + " series.";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4085
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4086
            dataLength = series._dataLength ? series._dataLength : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4087
            if(key === 37)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4088
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4089
                itemIndex = itemIndex > 0 ? itemIndex - 1 : dataLength - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4090
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4091
            else if(key === 39)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4092
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4093
                itemIndex = itemIndex >= dataLength - 1 ? 0 : itemIndex + 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4094
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4095
            this._itemIndex = itemIndex;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4096
            items = this.getSeriesItems(series, itemIndex);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4097
            categoryItem = items.category;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4098
            valueItem = items.value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4099
            if(categoryItem && valueItem && categoryItem.value && valueItem.value)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4100
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4101
                msg += categoryItem.displayName +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4102
                    ": " +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4103
                    categoryItem.axis.formatLabel.apply(this, [categoryItem.value, categoryItem.axis.get("labelFormat")]) +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4104
                    ", ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4105
                msg += valueItem.displayName +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4106
                    ": " +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4107
                    valueItem.axis.formatLabel.apply(this, [valueItem.value, valueItem.axis.get("labelFormat")]) +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4108
                    ", ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4109
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4110
           else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4111
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4112
                msg += "No data available.";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4113
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4114
            msg += (itemIndex + 1) + " of " + dataLength + ". ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4115
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4116
        return msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4117
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4118
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4119
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4120
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4121
         * Indicates whether axis labels are allowed to overflow beyond the bounds of the chart's content box.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4122
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4123
         * @attribute allowContentOverflow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4124
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4125
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4126
        allowContentOverflow: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4127
            value: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4128
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4129
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4130
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4131
         * Style object for the axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4132
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4133
         * @attribute axesStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4134
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4135
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4136
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4137
        axesStyles: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4138
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4139
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4140
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4141
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4142
                var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4143
                    i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4144
                    styles = this._axesStyles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4145
                if(axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4146
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4147
                    for(i in axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4148
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4149
                        if(axes.hasOwnProperty(i) && axes[i] instanceof Y.Axis)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4150
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4151
                            if(!styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4152
                            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4153
                                styles = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4154
                            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4155
                            styles[i] = axes[i].get("styles");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4156
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4157
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4158
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4159
                return styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4160
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4161
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4162
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4163
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4164
                var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4165
                    i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4166
                for(i in val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4167
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4168
                    if(val.hasOwnProperty(i) && axes.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4169
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4170
                        this._setBaseAttribute(axes[i], "styles", val[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4171
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4172
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4173
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4174
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4175
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4177
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4178
         * Style object for the series
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4179
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4180
         * @attribute seriesStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4181
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4182
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4183
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4184
        seriesStyles: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4185
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4186
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4187
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4188
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4189
                var styles = this._seriesStyles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4190
                    graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4191
                    dict,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4192
                    i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4193
                if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4194
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4195
                    dict = graph.get("seriesDictionary");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4196
                    if(dict)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4197
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4198
                        styles = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4199
                        for(i in dict)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4200
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4201
                            if(dict.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4202
                            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4203
                                styles[i] = dict[i].get("styles");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4204
                            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4205
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4206
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4207
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4208
                return styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4209
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4210
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4211
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4212
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4213
                var i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4214
                    l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4215
                    s;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4217
                if(Y_Lang.isArray(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4218
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4219
                    s = this.get("seriesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4220
                    i = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4221
                    l = val.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4223
                    for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4224
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4225
                        this._setBaseAttribute(s[i], "styles", val[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4226
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4227
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4228
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4229
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4230
                    for(i in val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4231
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4232
                        if(val.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4233
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4234
                            s = this.getSeries(i);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4235
                            this._setBaseAttribute(s, "styles", val[i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4236
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4237
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4238
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4239
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4240
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4241
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4242
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4243
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4244
         * Styles for the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4245
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4246
         * @attribute graphStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4247
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4248
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4249
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4250
        graphStyles: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4251
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4253
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4254
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4255
                var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4256
                if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4257
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4258
                    return(graph.get("styles"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4259
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4260
                return this._graphStyles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4261
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4263
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4264
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4265
                var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4266
                this._setBaseAttribute(graph, "styles", val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4267
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4268
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4270
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4272
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4273
         * Style properties for the chart. Contains a key indexed hash of the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4274
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4275
         *      <dt>series</dt><dd>A key indexed hash containing references to the `styles` attribute for each series in the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4276
         *      Specific style attributes vary depending on the series:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4277
         *      <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4278
         *          <li><a href="AreaSeries.html#attr_styles">AreaSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4279
         *          <li><a href="BarSeries.html#attr_styles">BarSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4280
         *          <li><a href="ColumnSeries.html#attr_styles">ColumnSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4281
         *          <li><a href="ComboSeries.html#attr_styles">ComboSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4282
         *          <li><a href="LineSeries.html#attr_styles">LineSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4283
         *          <li><a href="MarkerSeries.html#attr_styles">MarkerSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4284
         *          <li><a href="SplineSeries.html#attr_styles">SplineSeries</a></li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4285
         *      </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4286
         *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4287
         *      <dt>axes</dt><dd>A key indexed hash containing references to the `styles` attribute for each axes in the chart. Specific
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4288
         *      style attributes can be found in the <a href="Axis.html#attr_styles">Axis</a> class.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4289
         *      <dt>graph</dt><dd>A reference to the `styles` attribute in the chart. Specific style attributes can be found in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4290
         *      <a href="Graph.html#attr_styles">Graph</a> class.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4291
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4292
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4293
         * @attribute styles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4294
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4295
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4296
        styles: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4297
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4298
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4299
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4300
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4301
                var styles = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4302
                    axes: this.get("axesStyles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4303
                    series: this.get("seriesStyles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4304
                    graph: this.get("graphStyles")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4305
                };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4306
                return styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4307
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4308
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4309
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4310
                if(val.hasOwnProperty("axes"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4311
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4312
                    if(this.get("axesStyles"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4313
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4314
                        this.set("axesStyles", val.axes);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4315
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4316
                    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4317
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4318
                        this._axesStyles = val.axes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4319
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4320
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4321
                if(val.hasOwnProperty("series"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4322
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4323
                    if(this.get("seriesStyles"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4324
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4325
                        this.set("seriesStyles", val.series);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4326
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4327
                    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4328
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4329
                        this._seriesStyles = val.series;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4330
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4331
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4332
                if(val.hasOwnProperty("graph"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4333
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4334
                    this.set("graphStyles", val.graph);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4335
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4336
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4337
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4338
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4339
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4340
         * Axes to appear in the chart. This can be a key indexed hash of axis instances or object literals
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4341
         * used to construct the appropriate axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4342
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4343
         * @attribute axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4344
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4345
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4346
        axes: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4347
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4349
            valueFn: "_getDefaultAxes",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4350
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4351
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4352
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4353
                if(this.get("dataProvider"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4354
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4355
                    val = this._setAxes(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4356
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4357
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4358
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4359
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4360
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4361
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4362
         * Collection of series to appear on the chart. This can be an array of Series instances or object literals
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4363
         * used to construct the appropriate series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4364
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4365
         * @attribute seriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4366
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4367
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4368
        seriesCollection: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4369
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4370
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4371
            valueFn: "_getDefaultSeriesCollection",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4372
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4373
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4374
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4375
                if(this.get("dataProvider"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4376
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4377
                    return this._parseSeriesCollection(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4378
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4379
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4380
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4381
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4382
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4383
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4384
         * Reference to the left-aligned axes for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4385
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4386
         * @attribute leftAxesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4387
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4388
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4389
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4390
        leftAxesCollection: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4391
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4392
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4393
         * Reference to the bottom-aligned axes for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4394
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4395
         * @attribute bottomAxesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4396
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4397
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4398
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4399
        bottomAxesCollection: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4400
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4401
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4402
         * Reference to the right-aligned axes for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4403
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4404
         * @attribute rightAxesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4405
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4406
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4407
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4408
        rightAxesCollection: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4409
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4410
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4411
         * Reference to the top-aligned axes for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4412
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4413
         * @attribute topAxesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4414
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4415
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4416
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4417
        topAxesCollection: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4418
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4419
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4420
         * Indicates whether or not the chart is stacked.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4421
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4422
         * @attribute stacked
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4423
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4424
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4425
        stacked: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4426
            value: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4427
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4429
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4430
         * Direction of chart's category axis when there is no series collection specified. Charts can
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4431
         * be horizontal or vertical. When the chart type is column, the chart is horizontal.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4432
         * When the chart type is bar, the chart is vertical.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4433
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4434
         * @attribute direction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4435
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4436
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4437
        direction: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4438
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4439
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4440
                var type = this.get("type");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4441
                if(type === "bar")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4442
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4443
                    return "vertical";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4444
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4445
                else if(type === "column")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4446
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4447
                    return "horizontal";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4448
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4449
                return this._direction;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4450
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4451
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4452
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4453
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4454
                this._direction = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4455
                return this._direction;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4456
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4457
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4458
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4459
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4460
         * Indicates whether or not an area is filled in a combo chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4461
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4462
         * @attribute showAreaFill
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4463
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4464
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4465
        showAreaFill: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4466
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4467
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4468
         * Indicates whether to display markers in a combo chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4469
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4470
         * @attribute showMarkers
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4471
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4472
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4473
        showMarkers:{},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4474
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4475
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4476
         * Indicates whether to display lines in a combo chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4477
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4478
         * @attribute showLines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4479
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4480
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4481
        showLines:{},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4482
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4483
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4484
         * Indicates the key value used to identify a category axis in the `axes` hash. If
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4485
         * not specified, the categoryKey attribute value will be used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4486
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4487
         * @attribute categoryAxisName
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4488
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4489
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4490
        categoryAxisName: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4491
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4492
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4493
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4494
         * Indicates the key value used to identify a the series axis when an axis not generated.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4495
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4496
         * @attribute valueAxisName
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4497
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4498
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4499
        valueAxisName: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4500
            value: "values"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4501
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4502
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4503
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4504
         * Reference to the horizontalGridlines for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4505
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4506
         * @attribute horizontalGridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4507
         * @type Gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4508
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4509
        horizontalGridlines: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4510
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4511
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4512
                var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4513
                if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4514
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4515
                    return graph.get("horizontalGridlines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4516
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4517
                return this._horizontalGridlines;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4518
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4519
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4520
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4521
                var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4522
                if(val && !Y_Lang.isObject(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4523
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4524
                    val = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4525
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4526
                if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4527
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4528
                    graph.set("horizontalGridlines", val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4529
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4530
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4531
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4532
                    this._horizontalGridlines = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4533
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4534
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4535
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4536
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4537
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4538
         * Reference to the verticalGridlines for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4539
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4540
         * @attribute verticalGridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4541
         * @type Gridlines
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4542
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4543
        verticalGridlines: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4544
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4545
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4546
                var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4547
                if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4548
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4549
                    return graph.get("verticalGridlines");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4550
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4551
                return this._verticalGridlines;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4552
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4553
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4554
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4555
                var graph = this.get("graph");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4556
                if(val && !Y_Lang.isObject(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4557
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4558
                    val = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4559
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4560
                if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4561
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4562
                    graph.set("verticalGridlines", val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4563
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4564
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4565
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4566
                    this._verticalGridlines = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4567
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4568
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4569
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4570
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4571
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4572
         * Type of chart when there is no series collection specified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4573
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4574
         * @attribute type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4575
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4576
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4577
        type: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4578
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4579
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4580
                if(this.get("stacked"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4581
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4582
                    return "stacked" + this._type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4583
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4584
                return this._type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4585
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4586
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4587
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4588
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4589
                if(this._type === "bar")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4590
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4591
                    if(val !== "bar")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4592
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4593
                        this.set("direction", "horizontal");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4594
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4595
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4596
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4597
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4598
                    if(val === "bar")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4599
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4600
                        this.set("direction", "vertical");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4601
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4602
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4603
                this._type = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4604
                return this._type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4605
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4606
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4607
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4608
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4609
         * Reference to the category axis used by the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4610
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4611
         * @attribute categoryAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4612
         * @type Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4613
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4614
        categoryAxis:{}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4615
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4616
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4617
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4618
 * The PieChart class creates a pie chart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4619
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4620
 * @class PieChart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4621
 * @extends ChartBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4622
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4623
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4624
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4625
Y.PieChart = Y.Base.create("pieChart", Y.Widget, [Y.ChartBase], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4626
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4627
     * Calculates and returns a `seriesCollection`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4628
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4629
     * @method _getSeriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4630
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4631
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4632
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4633
    _getSeriesCollection: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4634
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4635
        if(this._seriesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4636
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4637
            return this._seriesCollection;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4638
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4639
        var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4640
            sc = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4641
            seriesKeys,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4642
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4643
            l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4644
            type = this.get("type"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4645
            key,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4646
            catAxis = "categoryAxis",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4647
            catKey = "categoryKey",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4648
            valAxis = "valueAxis",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4649
            seriesKey = "valueKey";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4650
        if(axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4651
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4652
            seriesKeys = axes.values.get("keyCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4653
            key = axes.category.get("keyCollection")[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4654
            l = seriesKeys.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4655
            for(; i < l; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4656
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4657
                sc[i] = {type:type};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4658
                sc[i][catAxis] = "category";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4659
                sc[i][valAxis] = "values";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4660
                sc[i][catKey] = key;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4661
                sc[i][seriesKey] = seriesKeys[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4662
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4663
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4664
        this._seriesCollection = sc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4665
        return sc;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4666
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4667
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4668
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4669
     * Creates `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4670
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4671
     * @method _parseAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4672
     * @param {Object} val Object containing `Axis` instances or objects in which to construct `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4673
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4674
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4675
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4676
    _parseAxes: function(hash)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4677
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4678
        if(!this._axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4679
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4680
            this._axes = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4681
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4682
        var i, pos, axis, dh, config, AxisClass,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4683
            type = this.get("type"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4684
            w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4685
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4686
            node = Y.Node.one(this._parentNode);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4687
        if(!w)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4688
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4689
            this.set("width", node.get("offsetWidth"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4690
            w = this.get("width");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4691
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4692
        if(!h)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4693
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4694
            this.set("height", node.get("offsetHeight"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4695
            h = this.get("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4696
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4697
        for(i in hash)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4698
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4699
            if(hash.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4700
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4701
                dh = hash[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4702
                pos = type === "pie" ? "none" : dh.position;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4703
                AxisClass = this._getAxisClass(dh.type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4704
                config = {dataProvider:this.get("dataProvider")};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4705
                if(dh.hasOwnProperty("roundingUnit"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4706
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4707
                    config.roundingUnit = dh.roundingUnit;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4708
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4709
                config.keys = dh.keys;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4710
                config.width = w;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4711
                config.height = h;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4712
                config.position = pos;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4713
                config.styles = dh.styles;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4714
                axis = new AxisClass(config);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4715
                axis.on("axisRendered", Y.bind(this._itemRendered, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4716
                this._axes[i] = axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4717
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4718
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4719
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4720
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4721
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4722
     * Adds axes to the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4723
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4724
     * @method _addAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4725
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4726
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4727
    _addAxes: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4728
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4729
        var axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4730
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4731
            axis,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4732
            p;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4733
        if(!axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4734
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4735
            this.set("axes", this._getDefaultAxes());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4736
            axes = this.get("axes");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4737
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4738
        if(!this._axesCollection)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4739
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4740
            this._axesCollection = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4741
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4742
        for(i in axes)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4743
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4744
            if(axes.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4745
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4746
                axis = axes[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4747
                p = axis.get("position");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4748
                if(!this.get(p + "AxesCollection"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4749
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4750
                    this.set(p + "AxesCollection", [axis]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4751
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4752
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4753
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4754
                    this.get(p + "AxesCollection").push(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4755
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4756
                this._axesCollection.push(axis);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4757
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4758
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4759
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4760
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4761
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4762
     * Renders the Graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4763
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4764
     * @method _addSeries
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4765
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4766
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4767
    _addSeries: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4768
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4769
        var graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4770
            seriesCollection = this.get("seriesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4771
        this._parseSeriesAxes(seriesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4772
        graph.set("showBackground", false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4773
        graph.set("width", this.get("width"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4774
        graph.set("height", this.get("height"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4775
        graph.set("seriesCollection", seriesCollection);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4776
        this._seriesCollection = graph.get("seriesCollection");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4777
        graph.render(this.get("contentBox"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4778
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4779
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4780
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4781
     * Parse and sets the axes for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4782
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4783
     * @method _parseSeriesAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4784
     * @param {Array} c A collection `PieSeries` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4785
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4786
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4787
    _parseSeriesAxes: function(c)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4788
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4789
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4790
            len = c.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4791
            s,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4792
            axes = this.get("axes"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4793
            axis;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4794
        for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4795
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4796
            s = c[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4797
            if(s)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4798
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4799
                //If series is an actual series instance,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4800
                //replace axes attribute string ids with axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4801
                if(s instanceof Y.PieSeries)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4802
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4803
                    axis = s.get("categoryAxis");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4804
                    if(axis && !(axis instanceof Y.Axis))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4805
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4806
                        s.set("categoryAxis", axes[axis]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4807
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4808
                    axis = s.get("valueAxis");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4809
                    if(axis && !(axis instanceof Y.Axis))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4810
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4811
                        s.set("valueAxis", axes[axis]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4812
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4813
                    continue;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4814
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4815
                s.categoryAxis = axes.category;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4816
                s.valueAxis = axes.values;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4817
                if(!s.type)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4818
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4819
                    s.type = this.get("type");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4820
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4821
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4822
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4823
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4824
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4825
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4826
     * Generates and returns a key-indexed object containing `Axis` instances or objects used to create `Axis` instances.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4827
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4828
     * @method _getDefaultAxes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4829
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4830
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4831
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4832
    _getDefaultAxes: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4833
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4834
        var catKey = this.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4835
            seriesKeys = this.get("seriesKeys").concat(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4836
            seriesAxis = "numeric";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4837
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4838
            values:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4839
                keys:seriesKeys,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4840
                type:seriesAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4841
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4842
            category:{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4843
                keys:[catKey],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4844
                type:this.get("categoryType")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4845
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4846
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4847
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4848
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4849
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4850
     * Returns an object literal containing a categoryItem and a valueItem for a given series index.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4851
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4852
     * @method getSeriesItem
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4853
     * @param series Reference to a series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4854
     * @param index Index of the specified item within a series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4855
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4856
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4857
    getSeriesItems: function(series, index)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4858
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4859
        var categoryItem = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4860
                axis: series.get("categoryAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4861
                key: series.get("categoryKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4862
                displayName: series.get("categoryDisplayName")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4863
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4864
            valueItem = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4865
                axis: series.get("valueAxis"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4866
                key: series.get("valueKey"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4867
                displayName: series.get("valueDisplayName")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4868
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4869
        categoryItem.value = categoryItem.axis.getKeyValueAt(categoryItem.key, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4870
        valueItem.value = valueItem.axis.getKeyValueAt(valueItem.key, index);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4871
        return {category:categoryItem, value:valueItem};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4872
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4873
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4874
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4875
     * Handler for sizeChanged event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4876
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4877
     * @method _sizeChanged
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4878
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4879
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4880
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4881
    _sizeChanged: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4882
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4883
        this._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4884
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4885
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4886
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4887
     * Redraws the chart instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4888
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4889
     * @method _redraw
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4890
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4891
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4892
    _redraw: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4893
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4894
        var graph = this.get("graph"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4895
            w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4896
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4897
            dimension;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4898
        if(graph)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4899
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4900
            dimension = Math.min(w, h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4901
            graph.set("width", dimension);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4902
            graph.set("height", dimension);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4903
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4904
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4905
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4906
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4907
     * Formats tooltip text for a pie chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4908
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4909
     * @method _tooltipLabelFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4910
     * @param {Object} categoryItem An object containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4911
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4912
     *      <dt>axis</dt><dd>The axis to which the category is bound.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4913
     *      <dt>displayName</dt><dd>The display name set to the category (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4914
     *      <dt>key</dt><dd>The key of the category.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4915
     *      <dt>value</dt><dd>The value of the category</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4916
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4917
     * @param {Object} valueItem An object containing the following:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4918
     *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4919
     *      <dt>axis</dt><dd>The axis to which the item's series is bound.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4920
     *      <dt>displayName</dt><dd>The display name of the series. (defaults to key if not provided)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4921
     *      <dt>key</dt><dd>The key for the series.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4922
     *      <dt>value</dt><dd>The value for the series item.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4923
     *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4924
     * @param {Number} itemIndex The index of the item within the series.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4925
     * @param {CartesianSeries} series The `PieSeries` instance of the item.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4926
     * @return {HTML}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4927
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4928
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4929
    _tooltipLabelFunction: function(categoryItem, valueItem, itemIndex, series)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4930
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4931
        var msg = DOCUMENT.createElement("div"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4932
            total = series.getTotalValues(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4933
            pct = Math.round((valueItem.value / total) * 10000)/100;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4934
        msg.appendChild(DOCUMENT.createTextNode(categoryItem.displayName +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4935
        ": " + categoryItem.axis.get("labelFunction").apply(this, [categoryItem.value, categoryItem.axis.get("labelFormat")])));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4936
        msg.appendChild(DOCUMENT.createElement("br"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4937
        msg.appendChild(DOCUMENT.createTextNode(valueItem.displayName +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4938
        ": " + valueItem.axis.get("labelFunction").apply(this, [valueItem.value, valueItem.axis.get("labelFormat")])));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4939
        msg.appendChild(DOCUMENT.createElement("br"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4940
        msg.appendChild(DOCUMENT.createTextNode(pct + "%"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4941
        return msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4942
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4943
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4944
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4945
     * Returns the appropriate message based on the key press.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4946
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4947
     * @method _getAriaMessage
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4948
     * @param {Number} key The keycode that was pressed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4949
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4950
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4951
    _getAriaMessage: function(key)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4952
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4953
        var msg = "",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4954
            categoryItem,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4955
            items,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4956
            series,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4957
            valueItem,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4958
            seriesIndex = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4959
            itemIndex = this._itemIndex,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4960
            len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4961
            total,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4962
            pct,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4963
            markers;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4964
        series = this.getSeries(parseInt(seriesIndex, 10));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4965
        markers = series.get("markers");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4966
        len = markers && markers.length ? markers.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4967
        if(key === 37)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4968
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4969
            itemIndex = itemIndex > 0 ? itemIndex - 1 : len - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4970
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4971
        else if(key === 39)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4972
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4973
            itemIndex = itemIndex >= len - 1 ? 0 : itemIndex + 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4974
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4975
        this._itemIndex = itemIndex;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4976
        items = this.getSeriesItems(series, itemIndex);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4977
        categoryItem = items.category;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4978
        valueItem = items.value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4979
        total = series.getTotalValues();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4980
        pct = Math.round((valueItem.value / total) * 10000)/100;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4981
        if(categoryItem && valueItem)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4982
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4983
            msg += categoryItem.displayName +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4984
                ": " +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4985
                categoryItem.axis.formatLabel.apply(this, [categoryItem.value, categoryItem.axis.get("labelFormat")]) +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4986
                ", ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4987
            msg += valueItem.displayName +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4988
                ": " + valueItem.axis.formatLabel.apply(this, [valueItem.value, valueItem.axis.get("labelFormat")]) +
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4989
                ", ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4990
            msg += "Percent of total " + valueItem.displayName + ": " + pct + "%,";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4991
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4992
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4993
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4994
            msg += "No data available,";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4995
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4996
        msg += (itemIndex + 1) + " of " + len + ". ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4997
        return msg;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4998
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  4999
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5000
    ATTRS: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5001
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5002
         * Sets the aria description for the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5003
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5004
         * @attribute ariaDescription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5005
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5006
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5007
        ariaDescription: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5008
            value: "Use the left and right keys to navigate through items.",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5009
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5010
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5011
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5012
                if(this._description)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5013
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5014
                    this._description.setContent("");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5015
                    this._description.appendChild(DOCUMENT.createTextNode(val));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5016
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5017
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5018
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5019
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5020
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5021
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5022
         * Axes to appear in the chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5023
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5024
         * @attribute axes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5025
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5026
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5027
        axes: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5028
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5029
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5030
                return this._axes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5031
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5032
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5033
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5034
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5035
                this._parseAxes(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5036
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5037
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5038
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5039
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5040
         * Collection of series to appear on the chart. This can be an array of Series instances or object literals
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5041
         * used to describe a Series instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5042
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5043
         * @attribute seriesCollection
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5044
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5045
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5046
        seriesCollection: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5047
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5048
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5049
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5050
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5051
                return this._getSeriesCollection();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5052
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5053
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5054
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5055
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5056
                return this._setSeriesCollection(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5057
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5058
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5059
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5060
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5061
         * Type of chart when there is no series collection specified.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5062
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5063
         * @attribute type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5064
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5065
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5066
        type: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5067
            value: "pie"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5068
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5069
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5070
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5071
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5072
 * The Chart class is the basic application used to create a chart.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5073
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5074
 * @class Chart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5075
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5076
 * @submodule charts-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5077
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5078
function Chart(cfg)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5079
{
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5080
    if(cfg.type !== "pie")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5081
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5082
        return new Y.CartesianChart(cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5083
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5084
    else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5085
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5086
        return new Y.PieChart(cfg);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5087
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5088
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5089
Y.Chart = Chart;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5090
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5091
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5092
}, '3.10.3', {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5093
    "requires": [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5094
        "dom",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5095
        "event-mouseenter",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5096
        "event-touch",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5097
        "graphics-group",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5098
        "axes",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5099
        "series-pie",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5100
        "series-line",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5101
        "series-marker",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5102
        "series-area",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5103
        "series-spline",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5104
        "series-column",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5105
        "series-bar",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5106
        "series-areaspline",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5107
        "series-combo",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5108
        "series-combospline",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5109
        "series-line-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5110
        "series-marker-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5111
        "series-area-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5112
        "series-spline-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5113
        "series-column-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5114
        "series-bar-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5115
        "series-areaspline-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5116
        "series-combo-stacked",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5117
        "series-combospline-stacked"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5118
    ]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  5119
});