src/cm/media/js/lib/yui/yui_3.10.3/build/axis/axis.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
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('axis', 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 base functionality for drawing chart axes.
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 axis
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
    DOCUMENT = CONFIG.doc,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
    Y_Lang = Y.Lang,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    IS_STRING = Y_Lang.isString,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    Y_DOM = Y.DOM,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    LeftAxisLayout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    RightAxisLayout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    BottomAxisLayout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    TopAxisLayout;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 * Algorithmic strategy for rendering a left axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * @class LeftAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 * @submodule axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
LeftAxisLayout = function() {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
LeftAxisLayout.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     *  Default margins for text fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     *  @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     *  @method _getDefaultMargins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
     *  @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    _getDefaultMargins: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
            top: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
            left: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
            right: 4,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
            bottom: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     * Sets the length of the tick on either side of the axis line.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @method setTickOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    setTickOffsets: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
            majorTicks = host.get("styles").majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
            halfTick = tickLength * 0.5,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
            display = majorTicks.display;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
        host.set("topTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        host.set("bottomTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
        switch(display)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
            case "inside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
                host.set("rightTickOffset",  tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                host.set("leftTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            case "outside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
                host.set("rightTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
                host.set("leftTickOffset",  tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
            case "cross":
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
                host.set("rightTickOffset", halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                host.set("leftTickOffset",  halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
            default:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                host.set("rightTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                host.set("leftTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
     * Draws a tick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
     * @method drawTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
     * @param {Path} path reference to the path `Path` element in which to draw the tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
     * @param {Object} pt Point on the axis in which the tick will intersect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
     * @param {Object} tickStyle Hash of properties to apply to the tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
    drawTick: function(path, pt, tickStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            tickLength = tickStyles.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
            start = {x:padding.left, y:pt.y},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
            end = {x:tickLength + padding.left, y:pt.y};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
        host.drawLine(path, start, end);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
     * Calculates the coordinates for the first point on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
     * @method getLineStart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
     * @return {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
    getLineStart: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
        var style = this.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
            majorTicks = style.majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
            display = majorTicks.display,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
            pt = {x:padding.left, y:0};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
        if(display === "outside")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
            pt.x += tickLength;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
        else if(display === "cross")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
            pt.x += tickLength/2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
        return pt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
     * Calculates the point for a label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
     * @method getLabelPoint
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     * @param {Object} point Point on the axis in which the tick will intersect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     * @return {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    getLabelPoint: function(point)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
        return {x:point.x - this.get("leftTickOffset"), y:point.y};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
     * Updates the value for the `maxLabelSize` for use in calculating total size.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
     * @method updateMaxLabelSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
     * @param {HTMLElement} label to measure
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
    updateMaxLabelSize: function(labelWidth, labelHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
            sinRadians = props.sinRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
            cosRadians = props.cosRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
            max;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
            max = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
        else if(absRot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
            max = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
            max = (cosRadians * labelWidth) + (sinRadians * labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
        host._maxLabelSize = Math.max(host._maxLabelSize, max);
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
     * Determines the available label width when the axis width has been explicitly set.
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 getExplicitlySized
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
    getExplicitlySized: function(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
        if(this._explicitWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
                w = host._explicitWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
                totalTitleSize = host._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
                leftTickOffset = host.get("leftTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
                margin = styles.label.margin.right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
            host._maxLabelSize =  w - (leftTickOffset + margin + totalTitleSize);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
            return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
     * Rotate and position title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
     * @method positionTitle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
    positionTitle: function(label)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
            bounds = host._titleBounds,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
            margin = host.get("styles").title.margin,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
            props = host._titleRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
            w = bounds.right - bounds.left,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
            labelWidth = label.offsetWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
            labelHeight = label.offsetHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
            x = (labelWidth * -0.5) + (w * 0.5),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
            y = (host.get("height") * 0.5) - (labelHeight * 0.5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        if(margin && margin.left)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
            x += margin.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        props.x = x;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
        props.y = y;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        props.transformOrigin = [0.5, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        host._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
     * Rotate and position labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
     * @method positionLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
     * @param {Object} pt hash containing the x and y coordinates in which the label will be positioned
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
     * against.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
    positionLabel: function(label, pt, styles, i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
            tickOffset = host.get("leftTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
            totalTitleSize = this._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
            leftOffset = pt.x + totalTitleSize - tickOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
            topOffset = pt.y,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
            maxLabelSize = host._maxLabelSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
            labelWidth = this._labelWidths[i],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
            labelHeight = this._labelHeights[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
            leftOffset -= labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
            topOffset -= labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
        else if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
            leftOffset -= labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
        else if(rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
            leftOffset -= labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
            topOffset -= labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
            leftOffset -= labelWidth + (labelHeight * absRot/360);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
            topOffset -= labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        props.x = Math.round(maxLabelSize + leftOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
        props.y = Math.round(topOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        this._rotate(label, props);
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
     * Adjusts the coordinates of an axis label based on the rotation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
     * @method _setRotationCoords
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
     * @param {Object} props Coordinates, dimension and rotation properties of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
    _setRotationCoords: function(props)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
        var rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
            leftOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
            topOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
            labelWidth = props.labelWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
            labelHeight = props.labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
            leftOffset = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
            topOffset = labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
        else if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
            topOffset = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
            leftOffset = labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
        else if(rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
            leftOffset = labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
            topOffset = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
            leftOffset = labelWidth + (labelHeight * absRot/360);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
            topOffset = labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
        props.x -= leftOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
        props.y -= topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
     * Returns the transformOrigin to use for an axis label based on the position of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
     * and the rotation of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
     * @method _getTransformOrigin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
     * @param {Number} rot The rotation (in degrees) of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
    _getTransformOrigin: function(rot)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
        var transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
            transformOrigin = [0, 0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
        else if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
            transformOrigin = [0.5, 0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
        else if(rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
            transformOrigin = [0.5, 1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
            transformOrigin = [1, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
        return transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
     * Adjust the position of the Axis widget's content box for internal axes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
     * @method offsetNodeForTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
     * @param {Node} cb contentBox of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
    offsetNodeForTick: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
     * Sets the width of the axis based on its contents.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
     * @method setCalculatedSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
    setCalculatedSize: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
            graphic = this.get("graphic"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
            label = style.label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
            tickOffset = host.get("leftTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
            max = host._maxLabelSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
            totalTitleSize = this._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
            ttl = Math.round(totalTitleSize + tickOffset + max + label.margin.right);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
        if(this._explicitWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
            ttl = this._explicitWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
        this.set("calculatedWidth", ttl);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
        graphic.set("x", ttl - tickOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
Y.LeftAxisLayout = LeftAxisLayout;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
 * RightAxisLayout contains algorithms for rendering a right axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
 * @class RightAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
 * @submodule axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
RightAxisLayout = function(){};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
RightAxisLayout.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
     *  Default margins for text fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
     *  @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
     *  @method _getDefaultMargins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
     *  @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
    _getDefaultMargins: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
            top: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
            left: 4,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
            right: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
            bottom: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
     * Sets the length of the tick on either side of the axis line.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
     * @method setTickOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    setTickOffsets: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
            majorTicks = host.get("styles").majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
            halfTick = tickLength * 0.5,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
            display = majorTicks.display;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
        host.set("topTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
        host.set("bottomTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
        switch(display)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
            case "inside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
                host.set("leftTickOffset", tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
                host.set("rightTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
            case "outside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
                host.set("leftTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
                host.set("rightTickOffset", tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
            case "cross" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
                host.set("rightTickOffset", halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
                host.set("leftTickOffset", halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
            default:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
                host.set("leftTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
                host.set("rightTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
     * Draws a tick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
     * @method drawTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
     * @param {Path} path reference to the path `Path` element in which to draw the tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
     * @param {Object} pt Point on the axis in which the tick will intersect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
     * @param {Object) tickStyle Hash of properties to apply to the tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
    drawTick: function(path, pt, tickStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
            tickLength = tickStyles.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
            start = {x:padding.left, y:pt.y},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
            end = {x:padding.left + tickLength, y:pt.y};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
        host.drawLine(path, start, end);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
     * Calculates the coordinates for the first point on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
     * @method getLineStart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
     * @return {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
    getLineStart: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
            majorTicks = style.majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
            display = majorTicks.display,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
            pt = {x:padding.left, y:padding.top};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
        if(display === "inside")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
            pt.x += tickLength;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
        else if(display === "cross")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
            pt.x += tickLength/2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
        return pt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
     * Calculates the point for a label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
     * @method getLabelPoint
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
     * @param {Object} point Point on the axis in which the tick will intersect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
     * @return {Object}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
    getLabelPoint: function(point)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
        return {x:point.x + this.get("rightTickOffset"), y:point.y};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
     * Updates the value for the `maxLabelSize` for use in calculating total size.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
     * @method updateMaxLabelSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
     * @param {HTMLElement} label to measure
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
    updateMaxLabelSize: function(labelWidth, labelHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
            sinRadians = props.sinRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
            cosRadians = props.cosRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
            max;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
            max = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
        else if(absRot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
            max = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
            max = (cosRadians * labelWidth) + (sinRadians * labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
        host._maxLabelSize = Math.max(host._maxLabelSize, max);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
     * Determines the available label width when the axis width has been explicitly set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
     * @method getExplicitlySized
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
    getExplicitlySized: function(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
        if(this._explicitWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
            var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
                w = host._explicitWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
                totalTitleSize = this._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
                rightTickOffset = host.get("rightTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
                margin = styles.label.margin.right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
            host._maxLabelSize =  w - (rightTickOffset + margin + totalTitleSize);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
            return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
        return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
     * Rotate and position title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
     * @method positionTitle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
    positionTitle: function(label)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
            bounds = host._titleBounds,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
            margin = host.get("styles").title.margin,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
            props = host._titleRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
            labelWidth = label.offsetWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
            labelHeight = label.offsetHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
            w = bounds.right - bounds.left,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
            x = this.get("width") - (labelWidth * 0.5) - (w * 0.5),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
            y = (host.get("height") * 0.5) - (labelHeight * 0.5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
        if(margin && margin.right)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
            x -= margin.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
        props.x = x;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
        props.y = y;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
        props.transformOrigin = [0.5, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
        host._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
    },
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
     * Rotate and position labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
     * @method positionLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
     * @param {Object} pt hash containing the x and y coordinates in which the label will be positioned
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
     * against.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    positionLabel: function(label, pt, styles, i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
            tickOffset = host.get("rightTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
            labelStyles = styles.label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
            margin = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
            leftOffset = pt.x,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
            topOffset = pt.y,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
            labelWidth = this._labelWidths[i],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
            labelHeight = this._labelHeights[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
        if(labelStyles.margin && labelStyles.margin.left)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
            margin = labelStyles.margin.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
            topOffset -= labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
        else if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
            leftOffset -= labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
            topOffset -= labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
        else if(rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
            leftOffset -= labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
            topOffset -= labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
            leftOffset += labelHeight/2 * absRot/90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
        leftOffset += margin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
        leftOffset += tickOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
        props.x = Math.round(leftOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
        props.y = Math.round(topOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
        this._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
     * Adjusts the coordinates of an axis label based on the rotation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
     * @method _setRotationCoords
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
     * @param {Object} props Coordinates, dimension and rotation properties of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
    _setRotationCoords: function(props)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
        var rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
            leftOffset = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
            topOffset = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
            labelWidth = props.labelWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
            labelHeight = props.labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
            topOffset = labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
        else if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
            leftOffset = labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
            topOffset = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
        else if(rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
            leftOffset = labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
            topOffset = labelHeight * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
            leftOffset = labelHeight/2 * absRot/90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
        props.x -= leftOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
        props.y -= topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
     * Returns the transformOrigin to use for an axis label based on the position of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
     * and the rotation of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
     * @method _getTransformOrigin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
     * @param {Number} rot The rotation (in degrees) of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
    _getTransformOrigin: function(rot)
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 transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
            transformOrigin = [0, 0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
        else if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
            transformOrigin = [0.5, 1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
        else if(rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
            transformOrigin = [0.5, 0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
            transformOrigin = [0, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
        return transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
    },
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
     * Adjusts position for inner ticks.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
     * @method offsetNodeForTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
     * @param {Node} cb contentBox of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
    offsetNodeForTick: function(cb)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
            tickOffset = host.get("leftTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
            offset = 0 - tickOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
        cb.setStyle("left", offset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
     * Assigns a height based on the size of the contents.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
     * @method setCalculatedSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
    setCalculatedSize: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
            styles = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
            labelStyle = styles.label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
            totalTitleSize = this._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
            ttl = Math.round(host.get("rightTickOffset") + host._maxLabelSize + totalTitleSize + labelStyle.margin.left);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
        if(this._explicitWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
            ttl = this._explicitWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
        host.set("calculatedWidth", ttl);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
        host.get("contentBox").setStyle("width", ttl);
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
Y.RightAxisLayout = RightAxisLayout;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
 * Contains algorithms for rendering a bottom axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
 * @class BottomAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
 * @Constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
 * @submodule axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
BottomAxisLayout = function(){};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
BottomAxisLayout.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
     *  Default margins for text fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
     *  @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
     *  @method _getDefaultMargins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
     *  @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
    _getDefaultMargins: function()
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 {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
            top: 4,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
            left: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
            right: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
            bottom: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
     * Sets the length of the tick on either side of the axis line.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
     * @method setTickOffsets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
    setTickOffsets: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
            majorTicks = host.get("styles").majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
            halfTick = tickLength * 0.5,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
            display = majorTicks.display;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
        host.set("leftTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
        host.set("rightTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
        switch(display)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
            case "inside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
                host.set("topTickOffset", tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
                host.set("bottomTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
            case "outside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
                host.set("topTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
                host.set("bottomTickOffset", tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
            case "cross":
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
                host.set("topTickOffset",  halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
                host.set("bottomTickOffset",  halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
            default:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
                host.set("topTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
                host.set("bottomTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
            break;
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
     * Calculates the coordinates for the first point on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
     * @method getLineStart
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
    getLineStart: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
        var style = this.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
            majorTicks = style.majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
            display = majorTicks.display,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
            pt = {x:0, y:padding.top};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
        if(display === "inside")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
            pt.y += tickLength;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
        else if(display === "cross")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
            pt.y += tickLength/2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
        return pt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
     * Draws a tick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
     * @method drawTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
     * @param {Path} path reference to the path `Path` element in which to draw the tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
     * @param {Object} pt hash containing x and y coordinates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
     * @param {Object} tickStyles hash of properties used to draw the tick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
    drawTick: function(path, pt, tickStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
            tickLength = tickStyles.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
            start = {x:pt.x, y:padding.top},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
            end = {x:pt.x, y:tickLength + padding.top};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
        host.drawLine(path, start, end);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
     * Calculates the point for a label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
     * @method getLabelPoint
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
     * @param {Object} pt Object containing x and y coordinates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
    getLabelPoint: function(point)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
        return {x:point.x, y:point.y + this.get("bottomTickOffset")};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
    },
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
     * Updates the value for the `maxLabelSize` for use in calculating total size.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
     * @method updateMaxLabelSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
     * @param {HTMLElement} label to measure
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
    updateMaxLabelSize: function(labelWidth, labelHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
            sinRadians = props.sinRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
            cosRadians = props.cosRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
            max;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
            max = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
        else if(absRot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
            max = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
            max = (sinRadians * labelWidth) + (cosRadians * labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
        host._maxLabelSize = Math.max(host._maxLabelSize, max);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
     * Determines the available label height when the axis width has been explicitly set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
     * @method getExplicitlySized
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
    getExplicitlySized: function(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
        if(this._explicitHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
            var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
                h = host._explicitHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
                totalTitleSize = host._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
                bottomTickOffset = host.get("bottomTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
                margin = styles.label.margin.right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
            host._maxLabelSize =  h - (bottomTickOffset + margin + totalTitleSize);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
            return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
        return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
     * Rotate and position title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
     * @method positionTitle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
    positionTitle: function(label)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
            bounds = host._titleBounds,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
            margin = host.get("styles").title.margin,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
            props = host._titleRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
            h = bounds.bottom - bounds.top,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
            labelWidth = label.offsetWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
            labelHeight = label.offsetHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
            x = (host.get("width") * 0.5) - (labelWidth * 0.5),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
            y = host.get("height") - labelHeight/2 - h/2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
        if(margin && margin.bottom)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
            y -= margin.bottom;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
        props.x = x;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
        props.y = y;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
        props.transformOrigin = [0.5, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
        host._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
     * Rotate and position labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
     * @method positionLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
     * @param {Object} pt hash containing the x and y coordinates in which the label will be positioned
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
     * against.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
    positionLabel: function(label, pt, styles, i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
            tickOffset = host.get("bottomTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
            labelStyles = styles.label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
            margin = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
            props = host._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
            leftOffset = Math.round(pt.x),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
            topOffset = Math.round(pt.y),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
            labelWidth = host._labelWidths[i],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
            labelHeight = host._labelHeights[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
        if(labelStyles.margin && labelStyles.margin.top)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
            margin = labelStyles.margin.top;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
        if(rot > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
            topOffset -= labelHeight/2 * rot/90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
        else if(rot < 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
            leftOffset -= labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
            topOffset -= labelHeight/2 * absRot/90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
            leftOffset -= labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
        topOffset += margin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
        topOffset += tickOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
        props.x = leftOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
        props.y = topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
        host._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
     * Adjusts the coordinates of an axis label based on the rotation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
     * @method _setRotationCoords
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
     * @param {Object} props Coordinates, dimension and rotation properties of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
    _setRotationCoords: function(props)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
        var rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
            labelWidth = props.labelWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
            labelHeight = props.labelHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
            leftOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
            topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
        if(rot > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
            leftOffset = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
            topOffset = labelHeight/2 * rot/90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
        else if(rot < 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
            leftOffset = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
            topOffset = labelHeight/2 * absRot/90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
            leftOffset = labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
            topOffset = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
        props.x -= leftOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
        props.y -= topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
     * Returns the transformOrigin to use for an axis label based on the position of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
     * and the rotation of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
     * @method _getTransformOrigin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
     * @param {Number} rot The rotation (in degrees) of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
    _getTransformOrigin: function(rot)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
        var transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
        if(rot > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
            transformOrigin = [0, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
        else if(rot < 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
            transformOrigin = [1, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
            transformOrigin = [0, 0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
        return transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
     * Adjusts position for inner ticks.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
     * @method offsetNodeForTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
     * @param {Node} cb contentBox of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
    offsetNodeForTick: function(cb)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1076
        var host = this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1077
        cb.setStyle("top", 0 - host.get("topTickOffset"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1078
    },
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
     * Assigns a height based on the size of the contents.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1082
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1083
     * @method setCalculatedSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1084
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1085
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1086
    setCalculatedSize: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1087
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1088
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1089
            styles = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1090
            labelStyle = styles.label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1091
            totalTitleSize = host._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1092
            ttl = Math.round(host.get("bottomTickOffset") + host._maxLabelSize + labelStyle.margin.top + totalTitleSize);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1093
        if(host._explicitHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1094
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1095
            ttl = host._explicitHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1096
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1097
        host.set("calculatedHeight", ttl);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1098
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1099
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1100
Y.BottomAxisLayout = BottomAxisLayout;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1101
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1102
 * Contains algorithms for rendering a top axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1103
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1104
 * @class TopAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1105
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1106
 * @submodule axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1107
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1108
TopAxisLayout = function(){};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1110
TopAxisLayout.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1111
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1112
     *  Default margins for text fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1113
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1114
     *  @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1115
     *  @method _getDefaultMargins
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1116
     *  @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1117
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1118
    _getDefaultMargins: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1119
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1120
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1121
            top: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1122
            left: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1123
            right: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1124
            bottom: 4
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1125
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1126
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1127
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1128
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1129
     * Sets the length of the tick on either side of the axis line.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1130
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1131
     * @method setTickOffsets
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1132
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1133
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1134
    setTickOffsets: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1135
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1136
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1137
            majorTicks = host.get("styles").majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1138
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1139
            halfTick = tickLength * 0.5,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1140
            display = majorTicks.display;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1141
        host.set("leftTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1142
        host.set("rightTickOffset",  0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1143
        switch(display)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1144
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1145
            case "inside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1146
                host.set("bottomTickOffset", tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1147
                host.set("topTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1148
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1149
            case "outside" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1150
                host.set("bottomTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1151
                host.set("topTickOffset",  tickLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1152
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1153
            case "cross" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1154
                host.set("topTickOffset", halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1155
                host.set("bottomTickOffset", halfTick);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1156
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1157
            default:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1158
                host.set("topTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1159
                host.set("bottomTickOffset", 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1160
            break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1161
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1162
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1164
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1165
     * Calculates the coordinates for the first point on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1166
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1167
     * @method getLineStart
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1168
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1169
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1170
    getLineStart: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1171
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1172
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1173
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1174
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1175
            majorTicks = style.majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1176
            tickLength = majorTicks.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1177
            display = majorTicks.display,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1178
            pt = {x:0, y:padding.top};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1179
        if(display === "outside")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1180
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1181
            pt.y += tickLength;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1182
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1183
        else if(display === "cross")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1184
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1185
            pt.y += tickLength/2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1186
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1187
        return pt;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1188
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1189
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1190
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1191
     * Draws a tick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1192
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1193
     * @method drawTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1194
     * @param {Path} path reference to the path `Path` element in which to draw the tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1195
     * @param {Object} pt hash containing x and y coordinates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1196
     * @param {Object} tickStyles hash of properties used to draw the tick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1197
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1198
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1199
    drawTick: function(path, pt, tickStyles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1200
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1201
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1202
            style = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1203
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1204
            tickLength = tickStyles.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1205
            start = {x:pt.x, y:padding.top},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1206
            end = {x:pt.x, y:tickLength + padding.top};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1207
        host.drawLine(path, start, end);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1208
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1209
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1210
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1211
     * Calculates the point for a label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1212
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1213
     * @method getLabelPoint
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1214
     * @param {Object} pt hash containing x and y coordinates
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1215
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1216
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1217
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1218
    getLabelPoint: function(pt)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1219
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1220
        return {x:pt.x, y:pt.y - this.get("topTickOffset")};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1221
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1223
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1224
     * Updates the value for the `maxLabelSize` for use in calculating total size.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1225
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1226
     * @method updateMaxLabelSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1227
     * @param {HTMLElement} label to measure
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1228
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1229
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1230
    updateMaxLabelSize: function(labelWidth, labelHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1231
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1232
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1233
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1234
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1235
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1236
            sinRadians = props.sinRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1237
            cosRadians = props.cosRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1238
            max;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1239
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1240
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1241
            max = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1242
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1243
        else if(absRot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1244
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1245
            max = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1246
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1247
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1248
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1249
            max = (sinRadians * labelWidth) + (cosRadians * labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1250
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1251
        host._maxLabelSize = Math.max(host._maxLabelSize, max);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1252
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1254
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1255
     * Determines the available label height when the axis width has been explicitly set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1256
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1257
     * @method getExplicitlySized
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1258
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1259
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1260
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1261
    getExplicitlySized: function(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1262
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1263
        if(this._explicitHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1264
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1265
            var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1266
                h = host._explicitHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1267
                totalTitleSize = host._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1268
                topTickOffset = host.get("topTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1269
                margin = styles.label.margin.right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1270
            host._maxLabelSize =  h - (topTickOffset + margin + totalTitleSize);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1271
            return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1272
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1273
        return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1274
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1276
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1277
     * Rotate and position title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1278
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1279
     * @method positionTitle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1280
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1281
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1282
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1283
    positionTitle: function(label)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1284
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1285
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1286
            bounds = host._titleBounds,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1287
            margin = host.get("styles").title.margin,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1288
            props = host._titleRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1289
            labelWidth = label.offsetWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1290
            labelHeight = label.offsetHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1291
            h = bounds.bottom - bounds.top,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1292
            x = (host.get("width") * 0.5) - (labelWidth * 0.5),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1293
            y = h/2 - labelHeight/2;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1294
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1295
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1296
        if(margin && margin.top)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1297
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1298
            y += margin.top;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1299
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1300
        props.x = x;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1301
        props.y = y;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1302
        props.transformOrigin = [0.5, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1303
        host._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1304
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1305
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1306
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1307
     * Rotate and position labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1308
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1309
     * @method positionLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1310
     * @param {HTMLElement} label to rotate position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1311
     * @param {Object} pt hash containing the x and y coordinates in which the label will be positioned
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1312
     * against.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1313
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1314
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1315
    positionLabel: function(label, pt, styles, i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1316
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1317
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1318
            totalTitleSize = this._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1319
            maxLabelSize = host._maxLabelSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1320
            leftOffset = pt.x,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1321
            topOffset = pt.y + totalTitleSize + maxLabelSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1322
            props = this._labelRotationProps,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1323
            rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1324
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1325
            labelWidth = this._labelWidths[i],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1326
            labelHeight = this._labelHeights[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1327
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1328
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1329
            leftOffset -= labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1330
            topOffset -= labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1331
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1332
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1333
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1334
            if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1335
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1336
                leftOffset -= labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1337
                topOffset -= (labelHeight * 0.5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1338
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1339
            else if (rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1340
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1341
                topOffset -= (labelHeight * 0.5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1342
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1343
            else if(rot > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1344
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1345
                leftOffset -= labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1346
                topOffset -= labelHeight - (labelHeight * rot/180);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1347
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1348
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1349
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1350
                topOffset -= labelHeight - (labelHeight * absRot/180);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1351
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1352
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1353
        props.x = Math.round(leftOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1354
        props.y = Math.round(topOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1355
        props.labelWidth = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1356
        props.labelHeight = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1357
        this._rotate(label, props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1358
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1359
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1360
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1361
     * Adjusts the coordinates of an axis label based on the rotation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1362
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1363
     * @method _setRotationCoords
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1364
     * @param {Object} props Coordinates, dimension and rotation properties of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1365
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1366
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1367
    _setRotationCoords: function(props)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1368
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1369
        var rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1370
            absRot = props.absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1371
            labelWidth = props.labelWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1372
            labelHeight = props.labelHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1373
            leftOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1374
            topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1375
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1376
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1377
            leftOffset = labelWidth * 0.5;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1378
            topOffset = labelHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1379
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1380
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1381
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1382
            if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1383
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1384
                leftOffset = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1385
                topOffset = (labelHeight * 0.5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1386
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1387
            else if (rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1388
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1389
                topOffset = (labelHeight * 0.5);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1390
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1391
            else if(rot > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1392
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1393
                leftOffset = labelWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1394
                topOffset = labelHeight - (labelHeight * rot/180);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1395
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1396
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1397
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1398
                topOffset = labelHeight - (labelHeight * absRot/180);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1399
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1400
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1401
        props.x -= leftOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1402
        props.y -= topOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1403
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1404
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1405
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1406
     * Returns the transformOrigin to use for an axis label based on the position of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1407
     * and the rotation of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1408
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1409
     * @method _getTransformOrigin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1410
     * @param {Number} rot The rotation (in degrees) of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1411
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1412
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1413
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1414
    _getTransformOrigin: function(rot)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1415
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1416
        var transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1417
        if(rot === 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1418
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1419
            transformOrigin = [0, 0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1420
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1421
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1422
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1423
            if(rot === 90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1424
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1425
                transformOrigin = [1, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1426
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1427
            else if (rot === -90)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1428
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1429
                transformOrigin = [0, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1430
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1431
            else if(rot > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1432
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1433
                transformOrigin = [1, 0.5];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1434
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1435
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1436
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1437
                transformOrigin = [0, 0.5];
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
        return transformOrigin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1441
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1442
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1443
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1444
     * Adjusts position for inner ticks.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1445
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1446
     * @method offsetNodeForTick
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1447
     * @param {Node} cb contentBox of the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1448
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1449
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1450
    offsetNodeForTick: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1451
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1452
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1453
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1454
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1455
     * Assigns a height based on the size of the contents.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1456
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1457
     * @method setCalculatedSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1458
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1459
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1460
    setCalculatedSize: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1461
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1462
        var host = this,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1463
            graphic = host.get("graphic"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1464
            styles = host.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1465
            labelMargin = styles.label.margin,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1466
            totalLabelSize = labelMargin.bottom + host._maxLabelSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1467
            totalTitleSize = host._totalTitleSize,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1468
            topTickOffset = this.get("topTickOffset"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1469
            ttl = Math.round(topTickOffset + totalLabelSize + totalTitleSize);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1470
        if(this._explicitHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1471
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1472
           ttl = this._explicitHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1473
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1474
        host.set("calculatedHeight", ttl);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1475
        graphic.set("y", ttl - topTickOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1476
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1477
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1478
Y.TopAxisLayout = TopAxisLayout;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1479
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1480
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1481
 * An abstract class that provides the core functionality for draw a chart axis. Axis is used by the following classes:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1482
 * <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1483
 *      <li>{{#crossLink "CategoryAxis"}}{{/crossLink}}</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1484
 *      <li>{{#crossLink "NumericAxis"}}{{/crossLink}}</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1485
 *      <li>{{#crossLink "StackedAxis"}}{{/crossLink}}</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1486
 *      <li>{{#crossLink "TimeAxis"}}{{/crossLink}}</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1487
 *  </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1488
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1489
 * @class Axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1490
 * @extends Widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1491
 * @uses AxisBase
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1492
 * @uses TopAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1493
 * @uses RightAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1494
 * @uses BottomAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1495
 * @uses LeftAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1496
 * @constructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1497
 * @param {Object} config (optional) Configuration parameters.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1498
 * @submodule axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1499
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1500
Y.Axis = Y.Base.create("axis", Y.Widget, [Y.AxisBase], {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1501
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1502
     * Calculates and returns a value based on the number of labels and the index of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1503
     * the current label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1504
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1505
     * @method getLabelByIndex
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1506
     * @param {Number} i Index of the label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1507
     * @param {Number} l Total number of labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1508
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1509
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1510
    getLabelByIndex: function(i, l)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1511
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1512
        var position = this.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1513
            direction = position === "left" || position === "right" ? "vertical" : "horizontal";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1514
        return this._getLabelByIndex(i, l, direction);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1515
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1516
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1517
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1518
     * @method bindUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1519
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1520
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1521
    bindUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1522
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1523
        this.after("dataReady", Y.bind(this._dataChangeHandler, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1524
        this.after("dataUpdate", Y.bind(this._dataChangeHandler, this));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1525
        this.after("stylesChange", this._updateHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1526
        this.after("overlapGraphChange", this._updateHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1527
        this.after("positionChange", this._positionChangeHandler);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1528
        this.after("widthChange", this._handleSizeChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1529
        this.after("heightChange", this._handleSizeChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1530
        this.after("calculatedWidthChange", this._handleSizeChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1531
        this.after("calculatedHeightChange", this._handleSizeChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1532
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1533
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1534
     * Storage for calculatedWidth value.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1535
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1536
     * @property _calculatedWidth
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1537
     * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1538
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1539
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1540
    _calculatedWidth: 0,
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
     * Storage for calculatedHeight value.
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 _calculatedHeight
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1546
     * @type Number
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
    _calculatedHeight: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1550
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1551
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1552
     * Handles change to the dataProvider
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1553
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1554
     * @method _dataChangeHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1555
     * @param {Object} e Event object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1556
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1557
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1558
    _dataChangeHandler: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1559
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1560
        if(this.get("rendered"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1561
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1562
            this._drawAxis();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1563
        }
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1567
     * Handles change to the position attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1568
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1569
     * @method _positionChangeHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1570
     * @param {Object} e Event object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1571
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1572
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1573
    _positionChangeHandler: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1574
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1575
        this._updateGraphic(e.newVal);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1576
        this._updateHandler();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1577
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1578
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1579
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1580
     * Updates the the Graphic instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1581
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1582
     * @method _updateGraphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1583
     * @param {String} position Position of axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1584
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1585
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1586
    _updateGraphic: function(position)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1587
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1588
        var graphic = this.get("graphic");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1589
        if(position === "none")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1590
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1591
            if(graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1592
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1593
                graphic.destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1594
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1595
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1596
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1597
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1598
            if(!graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1599
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1600
                this._setCanvas();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1601
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1602
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1603
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1604
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1605
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1606
     * Handles changes to axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1607
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1608
     * @method _updateHandler
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1609
     * @param {Object} e Event object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1610
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1611
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1612
    _updateHandler: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1613
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1614
        if(this.get("rendered"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1615
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1616
            this._drawAxis();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1617
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1618
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1619
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1620
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1621
     * @method renderUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1622
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1623
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1624
    renderUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1625
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1626
        this._updateGraphic(this.get("position"));
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1630
     * @method syncUI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1631
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1632
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1633
    syncUI: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1634
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1635
        var layout = this._layout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1636
            defaultMargins,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1637
            styles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1638
            label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1639
            title,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1640
            i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1641
        if(layout)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1642
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1643
            defaultMargins = layout._getDefaultMargins();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1644
            styles = this.get("styles");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1645
            label = styles.label.margin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1646
            title =styles.title.margin;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1647
            //need to defaultMargins method to the layout classes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1648
            for(i in defaultMargins)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1649
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1650
                if(defaultMargins.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1651
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1652
                    label[i] = label[i] === undefined ? defaultMargins[i] : label[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1653
                    title[i] = title[i] === undefined ? defaultMargins[i] : title[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1654
                }
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
        this._drawAxis();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1658
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1659
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1660
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1661
     * Creates a graphic instance to be used for the axis line and ticks.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1662
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1663
     * @method _setCanvas
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1664
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1665
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1666
    _setCanvas: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1667
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1668
        var cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1669
            bb = this.get("boundingBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1670
            p = this.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1671
            pn = this._parentNode,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1672
            w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1673
            h = this.get("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1674
        bb.setStyle("position", "absolute");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1675
        bb.setStyle("zIndex", 2);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1676
        w = w ? w + "px" : pn.getStyle("width");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1677
        h = h ? h + "px" : pn.getStyle("height");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1678
        if(p === "top" || p === "bottom")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1679
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1680
            cb.setStyle("width", w);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1681
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1682
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1683
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1684
            cb.setStyle("height", h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1685
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1686
        cb.setStyle("position", "relative");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1687
        cb.setStyle("left", "0px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1688
        cb.setStyle("top", "0px");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1689
        this.set("graphic", new Y.Graphic());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1690
        this.get("graphic").render(cb);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1691
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1692
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1693
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1694
     * Gets the default value for the `styles` attribute. Overrides
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1695
     * base implementation.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1696
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1697
     * @method _getDefaultStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1698
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1699
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1700
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1701
    _getDefaultStyles: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1702
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1703
        var axisstyles = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1704
            majorTicks: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1705
                display:"inside",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1706
                length:4,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1707
                color:"#dad8c9",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1708
                weight:1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1709
                alpha:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1710
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1711
            minorTicks: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1712
                display:"none",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1713
                length:2,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1714
                color:"#dad8c9",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1715
                weight:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1716
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1717
            line: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1718
                weight:1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1719
                color:"#dad8c9",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1720
                alpha:1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1721
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1722
            majorUnit: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1723
                determinant:"count",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1724
                count:11,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1725
                distance:75
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1726
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1727
            top: "0px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1728
            left: "0px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1729
            width: "100px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1730
            height: "100px",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1731
            label: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1732
                color:"#808080",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1733
                alpha: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1734
                fontSize:"85%",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1735
                rotation: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1736
                margin: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1737
                    top: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1738
                    right: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1739
                    bottom: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1740
                    left: undefined
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1741
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1742
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1743
            title: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1744
                color:"#808080",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1745
                alpha: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1746
                fontSize:"85%",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1747
                rotation: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1748
                margin: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1749
                    top: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1750
                    right: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1751
                    bottom: undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1752
                    left: undefined
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1753
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1754
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1755
            hideOverlappingLabelTicks: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1756
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1757
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1758
        return Y.merge(Y.Renderer.prototype._getDefaultStyles(), axisstyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1759
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1760
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1761
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1762
     * Updates the axis when the size changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1763
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1764
     * @method _handleSizeChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1765
     * @param {Object} e Event object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1766
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1767
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1768
    _handleSizeChange: function(e)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1769
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1770
        var attrName = e.attrName,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1771
            pos = this.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1772
            vert = pos === "left" || pos === "right",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1773
            cb = this.get("contentBox"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1774
            hor = pos === "bottom" || pos === "top";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1775
        cb.setStyle("width", this.get("width"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1776
        cb.setStyle("height", this.get("height"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1777
        if((hor && attrName === "width") || (vert && attrName === "height"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1778
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1779
            this._drawAxis();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1780
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1781
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1782
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1783
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1784
     * Maps key values to classes containing layout algorithms
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1785
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1786
     * @property _layoutClasses
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1787
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1788
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1789
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1790
    _layoutClasses:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1791
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1792
        top : TopAxisLayout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1793
        bottom: BottomAxisLayout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1794
        left: LeftAxisLayout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1795
        right : RightAxisLayout
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1796
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1797
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1798
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1799
     * Draws a line segment between 2 points
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1800
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1801
     * @method drawLine
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1802
     * @param {Object} startPoint x and y coordinates for the start point of the line segment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1803
     * @param {Object} endPoint x and y coordinates for the for the end point of the line segment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1804
     * @param {Object} line styles (weight, color and alpha to be applied to the line segment)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1805
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1806
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1807
    drawLine: function(path, startPoint, endPoint)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1808
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1809
        path.moveTo(startPoint.x, startPoint.y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1810
        path.lineTo(endPoint.x, endPoint.y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1811
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1812
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1813
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1814
     * Generates the properties necessary for rotating and positioning a text field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1815
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1816
     * @method _getTextRotationProps
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1817
     * @param {Object} styles properties for the text field
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1818
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1819
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1820
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1821
    _getTextRotationProps: function(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1822
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1823
        if(styles.rotation === undefined)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1824
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1825
            switch(this.get("position"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1826
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1827
                case "left" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1828
                    styles.rotation = -90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1829
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1830
                case "right" :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1831
                    styles.rotation = 90;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1832
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1833
                default :
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1834
                    styles.rotation = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1835
                break;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1836
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1837
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1838
        var rot =  Math.min(90, Math.max(-90, styles.rotation)),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1839
            absRot = Math.abs(rot),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1840
            radCon = Math.PI/180,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1841
            sinRadians = parseFloat(parseFloat(Math.sin(absRot * radCon)).toFixed(8)),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1842
            cosRadians = parseFloat(parseFloat(Math.cos(absRot * radCon)).toFixed(8));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1843
        return {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1844
            rot: rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1845
            absRot: absRot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1846
            radCon: radCon,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1847
            sinRadians: sinRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1848
            cosRadians: cosRadians,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1849
            textAlpha: styles.alpha
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1850
        };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1851
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1852
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1853
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1854
     * Draws an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1855
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1856
     * @method _drawAxis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1857
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1858
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1859
    _drawAxis: function ()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1860
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1861
        if(this._drawing)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1862
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1863
            this._callLater = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1864
            return;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1865
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1866
        this._drawing = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1867
        this._callLater = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1868
        if(this._layout)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1869
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1870
            var styles = this.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1871
                line = styles.line,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1872
                labelStyles = styles.label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1873
                majorTickStyles = styles.majorTicks,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1874
                drawTicks = majorTickStyles.display !== "none",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1875
                tickPoint,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1876
                majorUnit = styles.majorUnit,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1877
                len,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1878
                majorUnitDistance,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1879
                i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1880
                layout = this._layout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1881
                layoutLength,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1882
                lineStart,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1883
                label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1884
                labelWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1885
                labelHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1886
                labelFunction = this.get("labelFunction"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1887
                labelFunctionScope = this.get("labelFunctionScope"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1888
                labelFormat = this.get("labelFormat"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1889
                graphic = this.get("graphic"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1890
                path = this.get("path"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1891
                tickPath,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1892
                explicitlySized,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1893
                position = this.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1894
                labelData,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1895
                labelValues,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1896
                point,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1897
                points,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1898
                edgeOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1899
                direction = (position === "left" || position === "right") ? "vertical" : "horizontal";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1900
            this._labelWidths = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1901
            this._labelHeights = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1902
            graphic.set("autoDraw", false);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1903
            path.clear();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1904
            path.set("stroke", {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1905
                weight: line.weight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1906
                color: line.color,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1907
                opacity: line.alpha
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1908
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1909
            this._labelRotationProps = this._getTextRotationProps(labelStyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1910
            this._labelRotationProps.transformOrigin = layout._getTransformOrigin(this._labelRotationProps.rot);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1911
            layout.setTickOffsets.apply(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1912
            layoutLength = this.getLength();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1913
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1914
            len = this.getTotalMajorUnits();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1915
            edgeOffset = this.getEdgeOffset(len, layoutLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1916
            this.set("edgeOffset", edgeOffset);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1917
            lineStart = layout.getLineStart.apply(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1918
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1919
            //if labelValues are explicitly set, get the points based on the calculated positions of the labelValues
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1920
            //if not, get the points based on the axis length, number of ticks and majorUnit values
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1921
            if(this._labelValuesExplicitlySet)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1922
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1923
                labelData = this._getDataFromLabelValues(lineStart, this.get("labelValues"), edgeOffset, layoutLength, direction);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1924
                points = labelData.points;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1925
                labelValues = labelData.values;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1926
                len = points.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1927
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1928
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1929
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1930
                majorUnitDistance = this.getMajorUnitDistance(len, layoutLength, majorUnit);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1931
                points = this._getPoints(lineStart, len, edgeOffset, majorUnitDistance, direction);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1932
                labelValues = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1933
                for(i = 0; i < len; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1934
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1935
                    labelValues.push(this._getLabelByIndex(i, len, direction));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1936
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1937
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1938
                //Don't set labelValues fix for #2533172 is available
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1939
                //this.set("labelValues", labelValues, {src: internal});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1940
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1941
            
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1942
            //Don't create the last label or tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1943
            if(this.get("hideFirstMajorUnit"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1944
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1945
                points.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1946
                labelValues.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1947
                len = len - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1948
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1949
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1950
            //Don't create the last label or tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1951
            if(this.get("hideLastMajorUnit"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1952
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1953
                points.pop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1954
                labelValues.pop();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1955
                len = len - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1956
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1957
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1958
            if(len < 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1959
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1960
                this._clearLabelCache();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1961
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1962
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1963
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1964
                tickPoint = this.getFirstPoint(lineStart);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1965
                this.drawLine(path, lineStart, this.getLineEnd(tickPoint));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1966
                if(drawTicks)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1967
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1968
                    tickPath = this.get("tickPath");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1969
                    tickPath.clear();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1970
                    tickPath.set("stroke", {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1971
                        weight: majorTickStyles.weight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1972
                        color: majorTickStyles.color,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1973
                        opacity: majorTickStyles.alpha
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1974
                    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1975
                    for(i = 0; i < len; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1976
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1977
                        point = points[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1978
                        if(point)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1979
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1980
                            layout.drawTick.apply(this, [tickPath, points[i], majorTickStyles]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1981
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1982
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1983
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1984
                this._createLabelCache();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1985
                this._tickPoints = points;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1986
                this._maxLabelSize = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1987
                this._totalTitleSize = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1988
                this._titleSize = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1989
                this._setTitle();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1990
                explicitlySized = layout.getExplicitlySized.apply(this, [styles]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1991
                for(i = 0; i < len; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1992
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1993
                    point = points[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1994
                    if(point)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1995
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1996
                        label = this.getLabel(point, labelStyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1997
                        this._labels.push(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1998
                        this.get("appendLabelFunction")(label, labelFunction.apply(labelFunctionScope, [labelValues[i], labelFormat]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1999
                        labelWidth = Math.round(label.offsetWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2000
                        labelHeight = Math.round(label.offsetHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2001
                        if(!explicitlySized)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2002
                        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2003
                            this._layout.updateMaxLabelSize.apply(this, [labelWidth, labelHeight]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2004
                        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2005
                        this._labelWidths.push(labelWidth);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2006
                        this._labelHeights.push(labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2007
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2008
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2009
                this._clearLabelCache();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2010
                if(this.get("overlapGraph"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2011
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2012
                   layout.offsetNodeForTick.apply(this, [this.get("contentBox")]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2013
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2014
                layout.setCalculatedSize.apply(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2015
                if(this._titleTextField)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2016
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2017
                    this._layout.positionTitle.apply(this, [this._titleTextField]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2018
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2019
                len = this._labels.length;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2020
                for(i = 0; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2021
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2022
                    layout.positionLabel.apply(this, [this.get("labels")[i], this._tickPoints[i], styles, i]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2023
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2024
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2025
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2026
        this._drawing = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2027
        if(this._callLater)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2028
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2029
            this._drawAxis();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2030
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2031
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2032
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2033
            this._updatePathElement();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2034
            this.fire("axisRendered");
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
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2038
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2039
     * Calculates and sets the total size of a title.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2040
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2041
     * @method _setTotalTitleSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2042
     * @param {Object} styles Properties for the title field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2043
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2044
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2045
    _setTotalTitleSize: function(styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2046
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2047
        var title = this._titleTextField,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2048
            w = title.offsetWidth,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2049
            h = title.offsetHeight,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2050
            rot = this._titleRotationProps.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2051
            bounds,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2052
            size,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2053
            margin = styles.margin,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2054
            position = this.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2055
            matrix = new Y.Matrix();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2056
        matrix.rotate(rot);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2057
        bounds = matrix.getContentRect(w, h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2058
        if(position === "left" || position === "right")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2059
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2060
            size = bounds.right - bounds.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2061
            if(margin)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2062
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2063
                size += margin.left + margin.right;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2064
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2065
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2066
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2067
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2068
            size = bounds.bottom - bounds.top;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2069
            if(margin)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2070
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2071
                size += margin.top + margin.bottom;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2072
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2073
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2074
        this._titleBounds = bounds;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2075
        this._totalTitleSize = size;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2076
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2077
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2078
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2079
     *  Updates path.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2080
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2081
     *  @method _updatePathElement
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2082
     *  @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2083
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2084
    _updatePathElement: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2085
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2086
        var path = this._path,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2087
            tickPath = this._tickPath,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2088
            redrawGraphic = false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2089
            graphic = this.get("graphic");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2090
        if(path)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2091
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2092
            redrawGraphic = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2093
            path.end();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2094
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2095
        if(tickPath)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2096
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2097
            redrawGraphic = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2098
            tickPath.end();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2099
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2100
        if(redrawGraphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2101
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2102
            graphic._redraw();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2103
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2104
    },
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
     * Updates the content and style properties for a title field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2108
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2109
     * @method _updateTitle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2110
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2111
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2112
    _setTitle: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2113
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2114
        var i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2115
            styles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2116
            customStyles,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2117
            title = this.get("title"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2118
            titleTextField = this._titleTextField,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2119
            parentNode;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2120
        if(title !== null && title !== undefined)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2121
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2122
            customStyles = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2123
                    rotation: "rotation",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2124
                    margin: "margin",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2125
                    alpha: "alpha"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2126
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2127
            styles = this.get("styles").title;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2128
            if(!titleTextField)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2129
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2130
                titleTextField = DOCUMENT.createElement('span');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2131
                titleTextField.style.display = "block";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2132
                titleTextField.style.whiteSpace = "nowrap";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2133
                titleTextField.setAttribute("class", "axisTitle");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2134
                this.get("contentBox").append(titleTextField);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2135
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2136
            else if(!DOCUMENT.createElementNS)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2137
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2138
                if(titleTextField.style.filter)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2139
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2140
                    titleTextField.style.filter = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2141
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2142
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2143
            titleTextField.style.position = "absolute";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2144
            for(i in styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2145
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2146
                if(styles.hasOwnProperty(i) && !customStyles.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2147
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2148
                    titleTextField.style[i] = styles[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2149
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2150
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2151
            this.get("appendTitleFunction")(titleTextField, title);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2152
            this._titleTextField = titleTextField;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2153
            this._titleRotationProps = this._getTextRotationProps(styles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2154
            this._setTotalTitleSize(styles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2155
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2156
        else if(titleTextField)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2157
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2158
            parentNode = titleTextField.parentNode;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2159
            if(parentNode)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2160
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2161
                parentNode.removeChild(titleTextField);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2162
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2163
            this._titleTextField = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2164
            this._totalTitleSize = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2165
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2166
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2167
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2168
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2169
     * Creates or updates an axis label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2170
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2171
     * @method getLabel
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2172
     * @param {Object} pt x and y coordinates for the label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2173
     * @param {Object} styles styles applied to label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2174
     * @return HTMLElement
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2175
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2176
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2177
    getLabel: function(pt, styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2178
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2179
        var i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2180
            label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2181
            labelCache = this._labelCache,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2182
            customStyles = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2183
                rotation: "rotation",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2184
                margin: "margin",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2185
                alpha: "alpha"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2186
            };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2187
        if(labelCache && labelCache.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2188
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2189
            label = labelCache.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2190
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2191
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2192
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2193
            label = DOCUMENT.createElement("span");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2194
            label.className = Y.Lang.trim([label.className, "axisLabel"].join(' '));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2195
            this.get("contentBox").append(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2196
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2197
        if(!DOCUMENT.createElementNS)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2198
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2199
            if(label.style.filter)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2200
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2201
                label.style.filter = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2202
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2203
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2204
        label.style.display = "block";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2205
        label.style.whiteSpace = "nowrap";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2206
        label.style.position = "absolute";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2207
        for(i in styles)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2208
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2209
            if(styles.hasOwnProperty(i) && !customStyles.hasOwnProperty(i))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2210
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2211
                label.style[i] = styles[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2212
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2213
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2214
        return label;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2215
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2217
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2218
     * Creates a cache of labels that can be re-used when the axis redraws.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2219
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2220
     * @method _createLabelCache
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2221
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2222
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2223
    _createLabelCache: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2224
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2225
        if(this._labels)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2226
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2227
            while(this._labels.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2228
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2229
                this._labelCache.push(this._labels.shift());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2230
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2231
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2232
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2233
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2234
            this._clearLabelCache();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2235
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2236
        this._labels = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2237
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2239
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2240
     * Removes axis labels from the dom and clears the label cache.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2241
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2242
     * @method _clearLabelCache
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2243
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2244
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2245
    _clearLabelCache: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2246
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2247
        if(this._labelCache)
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 len = this._labelCache.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2250
                i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2251
                label;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2252
            for(; i < len; ++i)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2253
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2254
                label = this._labelCache[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2255
                this._removeChildren(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2256
                Y.Event.purgeElement(label, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2257
                label.parentNode.removeChild(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2258
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2259
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2260
        this._labelCache = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2261
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2262
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2263
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2264
     * Gets the end point of an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2265
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2266
     * @method getLineEnd
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2267
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2268
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2269
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2270
    getLineEnd: function(pt)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2271
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2272
        var w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2273
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2274
            pos = this.get("position");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2275
        if(pos === "top" || pos === "bottom")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2276
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2277
            return {x:w, y:pt.y};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2278
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2279
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2280
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2281
            return {x:pt.x, y:h};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2282
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2283
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2284
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2285
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2286
     * Calcuates the width or height of an axis depending on its direction.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2287
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2288
     * @method getLength
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2289
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2290
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2291
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2292
    getLength: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2293
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2294
        var l,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2295
            style = this.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2296
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2297
            w = this.get("width"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2298
            h = this.get("height"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2299
            pos = this.get("position");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2300
        if(pos === "top" || pos === "bottom")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2301
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2302
            l = w - (padding.left + padding.right);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2303
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2304
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2305
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2306
            l = h - (padding.top + padding.bottom);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2307
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2308
        return l;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2309
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2310
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2311
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2312
     * Gets the position of the first point on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2313
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2314
     * @method getFirstPoint
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2315
     * @param {Object} pt Object containing x and y coordinates.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2316
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2317
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2318
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2319
    getFirstPoint:function(pt)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2320
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2321
        var style = this.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2322
            pos = this.get("position"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2323
            padding = style.padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2324
            np = {x:pt.x, y:pt.y};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2325
        if(pos === "top" || pos === "bottom")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2326
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2327
            np.x += padding.left + this.get("edgeOffset");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2328
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2329
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2330
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2331
            np.y += this.get("height") - (padding.top + this.get("edgeOffset"));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2332
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2333
        return np;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2334
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2335
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2336
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2337
     * Calculates points based off the majorUnit count or distance of the Axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2338
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2339
     * @method _getPoints
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2340
     * @param {Object} startPoint An object literal containing the x and y coordinates of the first
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2341
     * point on the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2342
     * @param {Number} len The number of points on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2343
     * @param {Number} edgeOffset The distance from the start of the axis and the point.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2344
     * @param {Number} majorUnitDistance The distance between points on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2345
     * @param {String} direction Indicates whether the axis is horizontal or vertical.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2346
     * @return Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2347
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2348
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2349
    _getPoints: function(startPoint, len, edgeOffset, majorUnitDistance, direction)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2350
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2351
        var points = [],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2352
            i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2353
            style = this.get("styles"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2354
            staticCoord,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2355
            dynamicCoord,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2356
            constantVal,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2357
            newPoint,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2358
            padding,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2359
            coord;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2360
        if(direction === "vertical")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2361
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2362
            staticCoord = "x";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2363
            dynamicCoord = "y";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2364
            padding = style.padding.top;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2365
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2366
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2367
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2368
            staticCoord = "y";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2369
            dynamicCoord = "x";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2370
            padding = style.padding.left;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2371
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2372
        constantVal = startPoint[staticCoord];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2373
        coord = edgeOffset + padding;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2374
        for(i = 0; i < len; i = i + 1)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2375
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2376
            newPoint = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2377
            newPoint[staticCoord] = constantVal;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2378
            newPoint[dynamicCoord] = coord;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2379
            points.push(newPoint);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2380
            coord = coord + majorUnitDistance;
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 points;
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2386
     * Rotates and positions a text field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2387
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2388
     * @method _rotate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2389
     * @param {HTMLElement} label text field to rotate and position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2390
     * @param {Object} props properties to be applied to the text field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2391
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2392
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2393
    _rotate: function(label, props)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2394
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2395
        var rot = props.rot,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2396
            x = props.x,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2397
            y = props.y,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2398
            filterString,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2399
            textAlpha,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2400
            matrix = new Y.Matrix(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2401
            transformOrigin = props.transformOrigin || [0, 0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2402
            offsetRect;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2403
        if(DOCUMENT.createElementNS)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2404
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2405
            matrix.translate(x, y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2406
            matrix.rotate(rot);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2407
            Y_DOM.setStyle(label, "transformOrigin", (transformOrigin[0] * 100) + "% " + (transformOrigin[1] * 100) + "%");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2408
            Y_DOM.setStyle(label, "transform", matrix.toCSSText());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2409
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2410
        else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2411
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2412
            textAlpha = props.textAlpha;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2413
            if(Y_Lang.isNumber(textAlpha) && textAlpha < 1 && textAlpha > -1 && !isNaN(textAlpha))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2414
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2415
                filterString = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + Math.round(textAlpha * 100) + ")";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2416
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2417
            if(rot !== 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2418
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2419
                //ms filters kind of, sort of uses a transformOrigin of 0, 0.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2420
                //we'll translate the difference to create a true 0, 0 origin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2421
                matrix.rotate(rot);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2422
                offsetRect = matrix.getContentRect(props.labelWidth, props.labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2423
                matrix.init();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2424
                matrix.translate(offsetRect.left, offsetRect.top);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2425
                matrix.translate(x, y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2426
                this._simulateRotateWithTransformOrigin(matrix, rot, transformOrigin, props.labelWidth, props.labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2427
                if(filterString)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2428
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2429
                    filterString += " ";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2430
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2431
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2432
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2433
                    filterString = "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2434
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2435
                filterString += matrix.toFilterText();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2436
                label.style.left = matrix.dx + "px";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2437
                label.style.top = matrix.dy + "px";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2438
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2439
            else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2440
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2441
                label.style.left = x + "px";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2442
                label.style.top = y + "px";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2443
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2444
            if(filterString)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2445
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2446
                label.style.filter = filterString;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2447
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2448
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2449
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2450
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2451
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2452
     * Simulates a rotation with a specified transformOrigin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2453
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2454
     * @method _simulateTransformOrigin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2455
     * @param {Matrix} matrix Reference to a `Matrix` instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2456
     * @param {Number} rot The rotation (in degrees) that will be performed on a matrix.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2457
     * @param {Array} transformOrigin An array represeniting the origin in which to perform the transform. The first
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2458
     * index represents the x origin and the second index represents the y origin.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2459
     * @param {Number} w The width of the object that will be transformed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2460
     * @param {Number} h The height of the object that will be transformed.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2461
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2462
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2463
    _simulateRotateWithTransformOrigin: function(matrix, rot, transformOrigin, w, h)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2464
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2465
        var transformX = transformOrigin[0] * w,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2466
            transformY = transformOrigin[1] * h;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2467
        transformX = !isNaN(transformX) ? transformX : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2468
        transformY = !isNaN(transformY) ? transformY : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2469
        matrix.translate(transformX, transformY);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2470
        matrix.rotate(rot);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2471
        matrix.translate(-transformX, -transformY);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2472
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2473
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2474
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2475
     * Returns the coordinates (top, right, bottom, left) for the bounding box of the last label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2476
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2477
     * @method getMaxLabelBounds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2478
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2479
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2480
    getMaxLabelBounds: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2481
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2482
        return this._getLabelBounds(this.getMaximumValue());
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2483
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2484
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2485
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2486
     * Returns the coordinates (top, right, bottom, left) for the bounding box of the first label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2487
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2488
     * @method getMinLabelBounds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2489
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2490
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2491
    getMinLabelBounds: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2492
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2493
        return this._getLabelBounds(this.getMinimumValue());
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2497
     * Returns the coordinates (top, right, bottom, left) for the bounding box of a label.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2498
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2499
     * @method _getLabelBounds
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2500
     * @param {String} Value of the label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2501
     * @return Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2502
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2503
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2504
    _getLabelBounds: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2505
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2506
        var layout = this._layout,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2507
            labelStyles = this.get("styles").label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2508
            matrix = new Y.Matrix(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2509
            label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2510
            props = this._getTextRotationProps(labelStyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2511
            props.transformOrigin = layout._getTransformOrigin(props.rot);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2512
        label = this.getLabel({x: 0, y: 0}, labelStyles);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2513
        this.get("appendLabelFunction")(label, this.get("labelFunction").apply(this, [val, this.get("labelFormat")]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2514
        props.labelWidth = label.offsetWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2515
        props.labelHeight = label.offsetHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2516
        this._removeChildren(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2517
        Y.Event.purgeElement(label, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2518
        label.parentNode.removeChild(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2519
        props.x = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2520
        props.y = 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2521
        layout._setRotationCoords(props);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2522
        matrix.translate(props.x, props.y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2523
        this._simulateRotateWithTransformOrigin(matrix, props.rot, props.transformOrigin, props.labelWidth, props.labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2524
        return matrix.getContentRect(props.labelWidth, props.labelHeight);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2525
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2526
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2527
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2528
     * Removes all DOM elements from an HTML element. Used to clear out labels during detruction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2529
     * phase.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2530
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2531
     * @method _removeChildren
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2532
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2533
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2534
    _removeChildren: function(node)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2535
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2536
        if(node.hasChildNodes())
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2537
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2538
            var child;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2539
            while(node.firstChild)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2540
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2541
                child = node.firstChild;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2542
                this._removeChildren(child);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2543
                node.removeChild(child);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2544
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2545
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2546
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2547
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2548
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2549
     * Destructor implementation Axis class. Removes all labels and the Graphic instance from the widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2550
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2551
     * @method destructor
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2552
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2553
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2554
    destructor: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2555
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2556
        var cb = this.get("contentBox").getDOMNode(),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2557
            labels = this.get("labels"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2558
            graphic = this.get("graphic"),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2559
            label,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2560
            len = labels ? labels.length : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2561
        if(len > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2562
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2563
            while(labels.length > 0)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2564
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2565
                label = labels.shift();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2566
                this._removeChildren(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2567
                cb.removeChild(label);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2568
                label = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2569
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2570
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2571
        if(graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2572
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2573
            graphic.destroy();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2574
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2575
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2576
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2577
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2578
     * Length in pixels of largest text bounding box. Used to calculate the height of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2579
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2580
     * @property maxLabelSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2581
     * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2582
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2583
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2584
    _maxLabelSize: 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2585
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2586
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2587
     * 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
  2588
     * `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
  2589
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2590
     * @method _setText
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2591
     * @param label {HTMLElement} label to be updated
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2592
     * @param val {String} value with which to update the label
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2593
     * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2594
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2595
    _setText: function(textField, val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2596
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2597
        textField.innerHTML = "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2598
        if(Y_Lang.isNumber(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2599
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2600
            val = val + "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2601
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2602
        else if(!val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2603
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2604
            val = "";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2605
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2606
        if(IS_STRING(val))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2607
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2608
            val = DOCUMENT.createTextNode(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2609
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2610
        textField.appendChild(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2611
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2612
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2613
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2614
     * Returns the total number of majorUnits that will appear on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2615
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2616
     * @method getTotalMajorUnits
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2617
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2618
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2619
    getTotalMajorUnits: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2620
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2621
        var units,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2622
            majorUnit = this.get("styles").majorUnit,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2623
            len = this.getLength();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2624
        if(majorUnit.determinant === "count")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2625
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2626
            units = majorUnit.count;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2627
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2628
        else if(majorUnit.determinant === "distance")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2629
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2630
            units = (len/majorUnit.distance) + 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2631
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2632
        return units;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2633
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2634
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2635
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2636
     * Returns the distance between major units on an axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2637
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2638
     * @method getMajorUnitDistance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2639
     * @param {Number} len Number of ticks
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2640
     * @param {Number} uiLen Size of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2641
     * @param {Object} majorUnit Hash of properties used to determine the majorUnit
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2642
     * @return Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2643
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2644
    getMajorUnitDistance: function(len, uiLen, majorUnit)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2645
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2646
        var dist;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2647
        if(majorUnit.determinant === "count")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2648
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2649
            if(!this.get("calculateEdgeOffset"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2650
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2651
                len = len - 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2652
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2653
            dist = uiLen/len;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2654
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2655
        else if(majorUnit.determinant === "distance")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2656
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2657
            dist = majorUnit.distance;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2658
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2659
        return dist;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2660
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2661
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2662
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2663
     * Checks to see if data extends beyond the range of the axis. If so,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2664
     * that data will need to be hidden. This method is internal, temporary and subject
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2665
     * to removal in the future.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2666
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2667
     * @method _hasDataOverflow
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2668
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2669
     * @return Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2670
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2671
    _hasDataOverflow: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2672
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2673
        if(this.get("setMin") || this.get("setMax"))
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2674
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2675
            return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2676
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2677
        return false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2678
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2679
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2680
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2681
     * Returns a string corresponding to the first label on an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2682
     * axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2683
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2684
     * @method getMinimumValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2685
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2686
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2687
    getMinimumValue: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2688
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2689
        return this.get("minimum");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2690
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2691
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2692
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2693
     * Returns a string corresponding to the last label on an
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2694
     * axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2695
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2696
     * @method getMaximumValue
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2697
     * @return String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2698
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2699
    getMaximumValue: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2700
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2701
        return this.get("maximum");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2702
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2703
}, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2704
    ATTRS:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2705
    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2706
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2707
         * When set, defines the width of a vertical axis instance. By default, vertical axes automatically size based
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2708
         * on their contents. When the width attribute is set, the axis will not calculate its width. When the width
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2709
         * attribute is explicitly set, axis labels will postion themselves off of the the inner edge of the axis and the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2710
         * title, if present, will position itself off of the outer edge. If a specified width is less than the sum of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2711
         * the axis' contents, excess content will overflow.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2712
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2713
         * @attribute width
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2714
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2715
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2716
        width: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2717
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2718
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2719
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2720
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2721
                if(this._explicitWidth)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2722
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2723
                    return this._explicitWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2724
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2725
                return this._calculatedWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2726
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2727
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2728
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2729
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2730
                this._explicitWidth = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2731
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2732
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2733
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2734
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2735
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2736
         * When set, defines the height of a horizontal axis instance. By default, horizontal axes automatically size based
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2737
         * on their contents. When the height attribute is set, the axis will not calculate its height. When the height
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2738
         * attribute is explicitly set, axis labels will postion themselves off of the the inner edge of the axis and the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2739
         * title, if present, will position itself off of the outer edge. If a specified height is less than the sum of
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2740
         * the axis' contents, excess content will overflow.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2741
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2742
         * @attribute height
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2743
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2744
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2745
        height: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2746
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2747
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2748
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2749
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2750
                if(this._explicitHeight)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2751
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2752
                    return this._explicitHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2753
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2754
                return this._calculatedHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2755
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2756
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2757
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2758
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2759
                this._explicitHeight = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2760
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2761
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2762
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2763
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2764
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2765
         * Calculated value of an axis' width. By default, the value is used internally for vertical axes. If the `width`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2766
         * attribute is explicitly set, this value will be ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2767
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2768
         * @attribute calculatedWidth
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2769
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2770
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2771
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2772
        calculatedWidth: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2773
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2774
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2775
                return this._calculatedWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2776
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2777
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2778
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2779
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2780
                this._calculatedWidth = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2781
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2782
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2783
        },
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
         * Calculated value of an axis' height. By default, the value is used internally for horizontal axes. If the `height`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2787
         * attribute is explicitly set, this value will be ignored.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2788
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2789
         * @attribute calculatedHeight
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2790
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2791
         * @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2792
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2793
        calculatedHeight: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2794
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2795
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2796
                return this._calculatedHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2797
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2798
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2799
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2800
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2801
                this._calculatedHeight = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2802
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2803
            }
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
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2807
         * Difference between the first/last tick and edge of axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2808
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2809
         * @attribute edgeOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2810
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2811
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2812
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2813
        edgeOffset:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2814
        {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2815
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2816
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2817
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2818
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2819
         * The graphic in which the axis line and ticks will be rendered.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2820
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2821
         * @attribute graphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2822
         * @type Graphic
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2823
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2824
        graphic: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2825
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2826
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2827
         *  @attribute path
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2828
         *  @type Shape
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2829
         *  @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2830
         *  @private
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2831
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2832
        path: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2833
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2834
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2835
            getter: function()
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(!this._path)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2838
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2839
                    var graphic = this.get("graphic");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2840
                    if(graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2841
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2842
                        this._path = graphic.addShape({type:"path"});
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
                return this._path;
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
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2850
         *  @attribute tickPath
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2851
         *  @type Shape
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2852
         *  @readOnly
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
        tickPath: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2856
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2857
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2858
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2859
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2860
                if(!this._tickPath)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2861
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2862
                    var graphic = this.get("graphic");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2863
                    if(graphic)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2864
                    {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2865
                        this._tickPath = graphic.addShape({type:"path"});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2866
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2867
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2868
                return this._tickPath;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2869
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2870
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2871
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2872
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2873
         * Contains the contents of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2874
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2875
         * @attribute node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2876
         * @type HTMLElement
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2877
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2878
        node: {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2879
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2880
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2881
         * Direction of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2882
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2883
         * @attribute position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2884
         * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2885
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2886
        position: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2887
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2888
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2889
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2890
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2891
                var LayoutClass = this._layoutClasses[val];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2892
                if(val && val !== "none")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2893
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2894
                    this._layout = new LayoutClass();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2895
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2896
                return val;
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
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2901
         * Distance determined by the tick styles used to calculate the distance between the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2902
         * line in relation to the top of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2903
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2904
         * @attribute topTickOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2905
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2906
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2907
        topTickOffset: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2908
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2909
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2910
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2911
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2912
         * Distance determined by the tick styles used to calculate the distance between the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2913
         * line in relation to the bottom of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2914
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2915
         * @attribute bottomTickOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2916
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2917
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2918
        bottomTickOffset: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2919
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2920
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2921
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2922
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2923
         * Distance determined by the tick styles used to calculate the distance between the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2924
         * line in relation to the left of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2925
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2926
         * @attribute leftTickOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2927
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2928
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2929
        leftTickOffset: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2930
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2931
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2932
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2933
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2934
         * Distance determined by the tick styles used to calculate the distance between the axis
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2935
         * line in relation to the right side of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2936
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2937
         * @attribute rightTickOffset
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2938
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2939
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2940
        rightTickOffset: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2941
            value: 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2942
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2943
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2944
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2945
         * Collection of labels used to render the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2946
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2947
         * @attribute labels
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2948
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2949
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2950
        labels: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2951
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2952
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2953
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2954
                return this._labels;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2955
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2956
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2957
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2958
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2959
         * Collection of points used for placement of labels and ticks along the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2960
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2961
         * @attribute tickPoints
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2962
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2963
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2964
        tickPoints: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2965
            readOnly: true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2966
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2967
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2968
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2969
                if(this.get("position") === "none")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2970
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2971
                    return this.get("styles").majorUnit.count;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2972
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2973
                return this._tickPoints;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2974
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2975
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2976
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2977
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2978
         * Indicates whether the axis overlaps the graph. If an axis is the inner most axis on a given
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2979
         * position and the tick position is inside or cross, the axis will need to overlap the graph.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2980
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2981
         * @attribute overlapGraph
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2982
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2983
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2984
        overlapGraph: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2985
            value:true,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2986
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2987
            validator: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2988
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2989
                return Y_Lang.isBoolean(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2990
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2991
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2992
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2993
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2994
         * Length in pixels of largest text bounding box. Used to calculate the height of the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2995
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2996
         * @attribute maxLabelSize
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2997
         * @type Number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2998
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  2999
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3000
        maxLabelSize: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3001
            getter: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3002
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3003
                return this._maxLabelSize;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3004
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3005
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3006
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3007
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3008
                this._maxLabelSize = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3009
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3010
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3011
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3012
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3013
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3014
         *  Title for the axis. When specified, the title will display. The position of the title is determined by the axis position.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3015
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3016
         *      <dt>top</dt><dd>Appears above the axis and it labels. The default rotation is 0.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3017
         *      <dt>right</dt><dd>Appears to the right of the axis and its labels. The default rotation is 90.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3018
         *      <dt>bottom</dt><dd>Appears below the axis and its labels. The default rotation is 0.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3019
         *      <dt>left</dt><dd>Appears to the left of the axis and its labels. The default rotation is -90.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3020
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3021
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3022
         *  @attribute title
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3023
         *  @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3024
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3025
        title: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3026
            value: null
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3027
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3028
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3029
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3030
         * Function used to append an axis value to an axis label. This function has the following signature:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3031
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3032
         *      <dt>textField</dt><dd>The axis label to be appended. (`HTMLElement`)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3033
         *      <dt>val</dt><dd>The value to attach to the text field. This method will accept an `HTMLELement`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3034
         *      or a `String`. This method does not use (`HTMLElement` | `String`)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3035
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3036
         * The default method appends a value to the `HTMLElement` using the `appendChild` method. If the given
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3037
         * value is a `String`, the method will convert the the value to a `textNode` before appending to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3038
         * `HTMLElement`. This method will not convert an `HTMLString` to an `HTMLElement`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3039
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3040
         * @attribute appendLabelFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3041
         * @type Function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3042
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3043
        appendLabelFunction: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3044
            valueFn: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3045
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3046
                return this._setText;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3047
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3048
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3049
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3050
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3051
         * Function used to append a title value to the title object. This function has the following signature:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3052
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3053
         *      <dt>textField</dt><dd>The title text field to be appended. (`HTMLElement`)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3054
         *      <dt>val</dt><dd>The value to attach to the text field. This method will accept an `HTMLELement`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3055
         *      or a `String`. This method does not use (`HTMLElement` | `String`)</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3056
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3057
         * The default method appends a value to the `HTMLElement` using the `appendChild` method. If the given
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3058
         * value is a `String`, the method will convert the the value to a `textNode` before appending to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3059
         * `HTMLElement` element. This method will not convert an `HTMLString` to an `HTMLElement`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3060
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3061
         * @attribute appendTitleFunction
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3062
         * @type Function
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3063
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3064
        appendTitleFunction: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3065
            valueFn: function()
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3066
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3067
                return this._setText;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3068
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3069
        },
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
         * An array containing the unformatted values of the axis labels. By default, TimeAxis, NumericAxis and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3073
         * StackedAxis labelValues are determined by the majorUnit style. By default, CategoryAxis labels are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3074
         * determined by the values of the dataProvider.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3075
         * <p>When the labelValues attribute is explicitly set, the labelValues are dictated by the set value and
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3076
         * the position of ticks and labels are determined by where those values would fall on the axis. </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3077
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3078
         * @attribute labelValues
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3079
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3080
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3081
        labelValues: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3082
            lazyAdd: false,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3083
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3084
            setter: function(val)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3085
            {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3086
                var opts = arguments[2];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3087
                if(!val || (opts && opts.src && opts.src === "internal"))
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._labelValuesExplicitlySet = false;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3090
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3091
                else
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3092
                {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3093
                    this._labelValuesExplicitlySet = true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3094
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3095
                return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3096
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3097
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3098
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3099
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3100
         * Suppresses the creation of the the first visible label and tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3101
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3102
         * @attribute hideFirstMajorUnit
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3103
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3104
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3105
        hideFirstMajorUnit: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3106
            value: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3107
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3108
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3109
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3110
         * Suppresses the creation of the the last visible label and tick.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3111
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3112
         * @attribute hideLastMajorUnit
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3113
         * @type Boolean
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3114
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3115
        hideLastMajorUnit: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3116
            value: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3117
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3119
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3120
         * Style properties used for drawing an axis. This attribute is inherited from `Renderer`. Below are the default values:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3121
         *  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3122
         *      <dt>majorTicks</dt><dd>Properties used for drawing ticks.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3123
         *          <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3124
         *              <dt>display</dt><dd>Position of the tick. Possible values are `inside`, `outside`, `cross` and `none`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3125
         *              The default value is `inside`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3126
         *              <dt>length</dt><dd>The length (in pixels) of the tick. The default value is 4.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3127
         *              <dt>color</dt><dd>The color of the tick. The default value is `#dad8c9`</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3128
         *              <dt>weight</dt><dd>Number indicating the width of the tick. The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3129
         *              <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the tick. The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3130
         *          </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3131
         *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3132
         *      <dt>line</dt><dd>Properties used for drawing the axis line.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3133
         *          <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3134
         *              <dt>weight</dt><dd>Number indicating the width of the axis line. The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3135
         *              <dt>color</dt><dd>The color of the axis line. The default value is `#dad8c9`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3136
         *              <dt>alpha</dt><dd>Number from 0 to 1 indicating the opacity of the tick. The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3137
         *          </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3138
         *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3139
         *      <dt>majorUnit</dt><dd>Properties used to calculate the `majorUnit` for the axis.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3140
         *          <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3141
         *              <dt>determinant</dt><dd>The algorithm used for calculating distance between ticks. The possible options are
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3142
         *              `count` and `distance`. If the `determinant` is `count`, the axis ticks will spaced so that a specified number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3143
         *              of ticks appear on the axis. If the `determinant` is `distance`, the axis ticks will spaced out according to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3144
         *              the specified distance. The default value is `count`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3145
         *              <dt>count</dt><dd>Number of ticks to appear on the axis when the `determinant` is `count`. The default value is 11.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3146
         *              <dt>distance</dt><dd>The distance (in pixels) between ticks when the `determinant` is `distance`. The default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3147
         *              value is 75.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3148
         *          </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3149
         *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3150
         *      <dt>label</dt><dd>Properties and styles applied to the axis labels.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3151
         *          <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3152
         *              <dt>color</dt><dd>The color of the labels. The default value is `#808080`.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3153
         *              <dt>alpha</dt><dd>Number between 0 and 1 indicating the opacity of the labels. The default value is 1.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3154
         *              <dt>fontSize</dt><dd>The font-size of the labels. The default value is 85%</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3155
         *              <dt>rotation</dt><dd>The rotation, in degrees (between -90 and 90) of the labels. The default value is 0.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3156
         *              <dt>margin</dt><dd>The distance between the label and the axis/tick. Depending on the position of the `Axis`,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3157
         *              only one of the properties used.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3158
         *                  <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3159
         *                      <dt>top</dt><dd>Pixel value used for an axis with a `position` of `bottom`. The default value is 4.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3160
         *                      <dt>right</dt><dd>Pixel value used for an axis with a `position` of `left`. The default value is 4.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3161
         *                      <dt>bottom</dt><dd>Pixel value used for an axis with a `position` of `top`. The default value is 4.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3162
         *                      <dt>left</dt><dd>Pixel value used for an axis with a `position` of `right`. The default value is 4.</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3163
         *                  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3164
         *              </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3165
         *          </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3166
         *      </dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3167
         *  </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3168
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3169
         * @attribute styles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3170
         * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3171
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3172
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3173
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3174
Y.AxisType = Y.Base.create("baseAxis", Y.Axis, [], {});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3175
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  3177
}, '3.10.3', {"requires": ["dom", "widget", "widget-position", "widget-stack", "graphics", "axis-base"]});