src/cm/media/js/lib/yui/yui3-3.15.0/build/series-plot-util/series-plot-util-debug.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 602 e16a97fb364a
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('series-plot-util', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
 * Provides functionality for drawing plots in a series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module charts
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule series-plot-util
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
var Y_Lang = Y.Lang,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
    _getClassName = Y.ClassNameManager.getClassName,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
    SERIES_MARKER = _getClassName("seriesmarker");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 * Utility class used for drawing markers.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 * @class Plots
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 * @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
 * @submodule series-plot-util
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
function Plots(cfg)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
    var attrs = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
        markers: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
            getter: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
                return this._markers;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
    };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
    this.addAttrs(attrs, cfg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
Plots.prototype = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
     * Storage for default marker styles.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
     * @property _plotDefaults
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    _plotDefaults: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
     * Draws the markers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
     * @method drawPlots
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
    drawPlots: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
        if(!this.get("xcoords") || this.get("xcoords").length < 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
		{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
			return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
		}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
        var isNumber = Y_Lang.isNumber,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
            style = this._copyObject(this.get("styles").marker),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
            w = style.width,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
            h = style.height,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
            xcoords = this.get("xcoords"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
            ycoords = this.get("ycoords"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
            i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
            len = xcoords.length,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
            top = ycoords[0],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
            left,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
            marker,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
            offsetWidth = w/2,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
            offsetHeight = h/2,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
            xvalues,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
            yvalues,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
            fillColors = null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
            borderColors = null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
            graphOrder = this.get("graphOrder"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
            groupMarkers = this.get("groupMarkers");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
        if(groupMarkers)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
            xvalues = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
            yvalues = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
            for(; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
                xvalues.push(parseFloat(xcoords[i] - offsetWidth));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
                yvalues.push(parseFloat(ycoords[i] - offsetHeight));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
            this._createGroupMarker({
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
                xvalues: xvalues,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
                yvalues: yvalues,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
                fill: style.fill,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
                border: style.border,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
                dimensions: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
                    width: w,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
                    height: h
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
                },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
                graphOrder: graphOrder,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
                shape: style.shape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
            });
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
            return;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
        if(Y_Lang.isArray(style.fill.color))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
            fillColors = style.fill.color.concat();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
        if(Y_Lang.isArray(style.border.color))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
            borderColors = style.border.color.concat();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
        this._createMarkerCache();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
        for(; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
            top = parseFloat(ycoords[i] - offsetHeight);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
            left = parseFloat(xcoords[i] - offsetWidth);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
            if(!isNumber(left) || !isNumber(top))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
                this._markers.push(null);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
                continue;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
            if(fillColors)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
                style.fill.color = fillColors[i % fillColors.length];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
            if(borderColors)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
                style.border.color = borderColors[i % borderColors.length];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
            style.x = left;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
            style.y = top;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
            marker = this.getMarker(style, graphOrder, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
        this._clearMarkerCache();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
     * Pre-defined group shapes.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
     * @property _groupShapes
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   135
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   136
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   137
    _groupShapes: {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   138
        circle: Y.CircleGroup,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   139
        rect: Y.RectGroup,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   140
        ellipse: Y.EllipseGroup,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   141
        diamond: Y.DiamondGroup
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   142
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   143
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   144
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   145
     * Returns the correct group shape class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   146
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   147
     * @method _getGroupShape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   148
     * @param {Shape | String} shape Indicates which shape class.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   149
     * @return Function
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   150
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   151
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   152
    _getGroupShape: function(shape)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   153
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   154
        if(Y_Lang.isString(shape))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   155
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   156
            shape = this._groupShapes[shape];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   157
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   158
        return shape;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   159
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   160
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   161
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   162
     * Gets the default values for series that use the utility. This method is used by
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   163
     * the class' `styles` attribute's getter to get build default values.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   164
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   165
     * @method _getPlotDefaults
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   166
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   167
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   168
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   169
    _getPlotDefaults: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   170
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   171
        var defs = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   172
            fill:{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   173
                type: "solid",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   174
                alpha: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   175
                colors:null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   176
                alphas: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   177
                ratios: null
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   178
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   179
            border:{
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   180
                weight: 1,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   181
                alpha: 1
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   182
            },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   183
            width: 10,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   184
            height: 10,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   185
            shape: "circle"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   186
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   187
        defs.fill.color = this._getDefaultColor(this.get("graphOrder"), "fill");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   188
        defs.border.color = this._getDefaultColor(this.get("graphOrder"), "border");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   189
        return defs;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   190
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   191
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   192
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   193
     * Collection of markers to be used in the series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   194
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   195
     * @property _markers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   196
     * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   197
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   198
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   199
    _markers: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   200
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   201
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   202
     * Collection of markers to be re-used on a series redraw.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   203
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   204
     * @property _markerCache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   205
     * @type Array
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   206
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   207
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   208
    _markerCache: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   209
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   210
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   211
     * Gets and styles a marker. If there is a marker in cache, it will use it. Otherwise
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   212
     * it will create one.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   213
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   214
     * @method getMarker
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   215
     * @param {Object} styles Hash of style properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   216
     * @param {Number} order Order of the series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   217
     * @param {Number} index Index within the series associated with the marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   218
     * @return Shape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   219
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   220
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   221
    getMarker: function(styles, order, index)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   222
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   223
        var marker,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   224
            border = styles.border;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   225
        styles.id = this._getChart().get("id") + "_" + order + "_" + index;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   226
        //fix name differences between graphic layer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   227
        border.opacity = border.alpha;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   228
        styles.stroke = border;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   229
        styles.fill.opacity = styles.fill.alpha;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   230
        if(this._markerCache.length > 0)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   231
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   232
            while(!marker)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   233
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   234
                if(this._markerCache.length < 1)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   235
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   236
                    marker = this._createMarker(styles);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   237
                    break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   238
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   239
                marker = this._markerCache.shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   240
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   241
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   242
            marker.set(styles);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   243
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   244
        else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   245
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   246
            marker = this._createMarker(styles);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   247
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   248
        this._markers.push(marker);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   249
        return marker;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   250
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   251
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   252
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   253
     * Creates a shape to be used as a marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   254
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   255
     * @method _createMarker
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   256
     * @param {Object} styles Hash of style properties.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   257
     * @return Shape
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   258
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   259
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   260
    _createMarker: function(styles)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   261
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   262
        var graphic = this.get("graphic"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   263
            marker,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   264
            cfg = this._copyObject(styles);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   265
        cfg.type = cfg.shape;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   266
        marker = graphic.addShape(cfg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   267
        marker.addClass(SERIES_MARKER);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   268
        return marker;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   269
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   270
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   271
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   272
     * Creates a cache of markers for reuse.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   273
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   274
     * @method _createMarkerCache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   275
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   276
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   277
    _createMarkerCache: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   278
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   279
        if(this._groupMarker)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   280
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   281
            this._groupMarker.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   282
            this._groupMarker = null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   283
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   284
        if(this._markers && this._markers.length > 0)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   285
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   286
            this._markerCache = this._markers.concat();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   287
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   288
        else
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   289
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   290
            this._markerCache = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   291
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   292
        this._markers = [];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   293
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   294
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   295
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   296
     * Draws a series of markers in a single shape instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   297
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   298
     * @method _createGroupMarkers
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   299
     * @param {Object} styles Set of configuration properties used to create the markers.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   300
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   301
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   302
    _createGroupMarker: function(styles)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   303
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   304
        var marker,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   305
            markers = this.get("markers"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   306
            border = styles.border,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   307
            graphic,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   308
            cfg,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   309
            shape;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   310
        if(markers && markers.length > 0)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   311
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   312
            while(markers.length > 0)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   313
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   314
                marker = markers.shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   315
                marker.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   316
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   317
            this.set("markers", []);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   318
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   319
        //fix name differences between graphic layer
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   320
        border.opacity = border.alpha;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   321
        cfg = {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   322
            id: this._getChart().get("id") + "_" + styles.graphOrder,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   323
            stroke: border,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   324
            fill: styles.fill,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   325
            dimensions: styles.dimensions,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   326
            xvalues: styles.xvalues,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   327
            yvalues: styles.yvalues
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   328
        };
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   329
        cfg.fill.opacity = styles.fill.alpha;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   330
        shape = this._getGroupShape(styles.shape);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   331
        if(shape)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   332
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   333
            cfg.type = shape;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   334
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   335
        if(styles.hasOwnProperty("radius") && !isNaN(styles.radius))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   336
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   337
            cfg.dimensions.radius = styles.radius;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   338
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   339
        if(this._groupMarker)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   340
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   341
            this._groupMarker.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   342
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   343
        graphic = this.get("graphic");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   344
        this._groupMarker = graphic.addShape(cfg);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   345
        graphic._redraw();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   346
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   347
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   348
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   349
     * Toggles visibility
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   350
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   351
     * @method _toggleVisible
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   352
     * @param {Boolean} visible indicates visibilitye
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   353
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   354
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   355
    _toggleVisible: function(visible)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   356
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   357
        var marker,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   358
            markers = this.get("markers"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   359
            i = 0,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   360
            len;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   361
        if(markers)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   362
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   363
            len = markers.length;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   364
            for(; i < len; ++i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   365
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   366
                marker = markers[i];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   367
                if(marker)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   368
                {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   369
                    marker.set("visible", visible);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   370
                }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   371
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   372
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   373
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   374
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   375
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   376
     * Removes unused markers from the marker cache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   377
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   378
     * @method _clearMarkerCache
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   379
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   380
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   381
    _clearMarkerCache: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   382
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   383
        var marker;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   384
        while(this._markerCache.length > 0)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   385
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   386
            marker = this._markerCache.shift();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   387
            if(marker)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   388
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   389
                marker.destroy();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   390
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   391
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   392
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   393
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   394
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   395
     * Resizes and positions markers based on a mouse interaction.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   396
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   397
     * @method updateMarkerState
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   398
     * @param {String} type state of the marker
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   399
     * @param {Number} i index of the marker
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   400
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   401
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   402
    updateMarkerState: function(type, i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   403
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   404
        if(this._markers && this._markers[i])
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   405
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   406
            var w,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   407
                h,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   408
                styles = this._copyObject(this.get("styles").marker),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   409
                state = this._getState(type),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   410
                xcoords = this.get("xcoords"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   411
                ycoords = this.get("ycoords"),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   412
                marker = this._markers[i],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   413
                markerStyles = state === "off" || !styles[state] ? styles : styles[state];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   414
                markerStyles.fill.color = this._getItemColor(markerStyles.fill.color, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   415
                markerStyles.border.color = this._getItemColor(markerStyles.border.color, i);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   416
                markerStyles.stroke = markerStyles.border;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   417
                marker.set(markerStyles);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   418
                w = markerStyles.width;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   419
                h = markerStyles.height;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   420
                marker.set("x", (xcoords[i] - w/2));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   421
                marker.set("y",  (ycoords[i] - h/2));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   422
                marker.set("visible", this.get("visible"));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   423
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   424
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   425
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   426
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   427
     * Parses a color from an array.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   428
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   429
     * @method _getItemColor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   430
     * @param {Array} val collection of colors
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   431
     * @param {Number} i index of the item
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   432
     * @return String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   433
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   434
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   435
    _getItemColor: function(val, i)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   436
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   437
        if(Y_Lang.isArray(val))
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   438
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   439
            return val[i % val.length];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   440
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   441
        return val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   442
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   443
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   444
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   445
     * Method used by `styles` setter. Overrides base implementation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   446
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   447
     * @method _setStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   448
     * @param {Object} newStyles Hash of properties to update.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   449
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   450
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   451
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   452
    _setStyles: function(val)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   453
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   454
        val = this._parseMarkerStyles(val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   455
        return Y.Renderer.prototype._setStyles.apply(this, [val]);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   456
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   457
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   458
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   459
     * Combines new styles with existing styles.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   460
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   461
     * @method _parseMarkerStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   462
     * @param {Object} Object containing style properties for the marker.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   463
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   464
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   465
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   466
    _parseMarkerStyles: function(val)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   467
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   468
        if(val.marker)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   469
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   470
            var defs = this._getPlotDefaults();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   471
            val.marker = this._mergeStyles(val.marker, defs);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   472
            if(val.marker.over)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   473
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   474
                val.marker.over = this._mergeStyles(val.marker.over, val.marker);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   475
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   476
            if(val.marker.down)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   477
            {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   478
                val.marker.down = this._mergeStyles(val.marker.down, val.marker);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   479
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   480
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   481
        return val;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   482
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   483
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   484
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   485
     * Returns marker state based on event type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   486
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   487
     * @method _getState
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   488
     * @param {String} type event type
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   489
     * @return String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   490
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   491
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   492
    _getState: function(type)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   493
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   494
        var state;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   495
        switch(type)
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   496
        {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   497
            case "mouseout" :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   498
                state = "off";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   499
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   500
            case "mouseover" :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   501
                state = "over";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   502
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   503
            case "mouseup" :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   504
                state = "over";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   505
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   506
            case "mousedown" :
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   507
                state = "down";
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   508
            break;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   509
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   510
        return state;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   511
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   512
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   513
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   514
     * @property _statSyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   515
     * @type Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   516
     * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   517
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   518
    _stateSyles: null,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   519
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   520
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   521
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   522
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   523
     * Draws the series.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   524
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   525
     * @method drawSeries
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   526
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   527
    drawSeries: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   528
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   529
        this.drawPlots();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   530
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   531
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   532
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   533
     * @protected
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   534
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   535
     * Gets the default value for the `styles` attribute. Overrides
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   536
     * base implementation.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   537
     *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   538
     * @method _getDefaultStyles
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   539
     * @return Object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   540
     */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   541
    _getDefaultStyles: function()
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   542
    {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   543
        var styles = this._mergeStyles({marker:this._getPlotDefaults()}, this.constructor.superclass._getDefaultStyles());
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   544
        return styles;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   545
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   546
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   547
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   548
Y.augment(Plots, Y.Attribute);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   549
Y.Plots = Plots;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   550
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   551
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   552
}, '@VERSION@');