src/cm/media/js/lib/yui/yui_3.10.3/build/widget-position/widget-position-debug.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('widget-position', 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 basic XY positioning support for Widgets, though an extension
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 widget-position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
    var Lang = Y.Lang,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
        Widget = Y.Widget,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
        XY_COORD = "xy",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
        POSITION = "position",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
        POSITIONED = "positioned",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
        BOUNDING_BOX = "boundingBox",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
        RELATIVE = "relative",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
        RENDERUI = "renderUI",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
        BINDUI = "bindUI",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
        SYNCUI = "syncUI",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
        UI = Widget.UI_SRC,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
        XYChange = "xyChange";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
     * Widget extension, which can be used to add positioning support to the base Widget class, 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
     * through the <a href="Base.html#method_build">Base.build</a> method.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
     * @class WidgetPosition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     * @param {Object} config User configuration object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
    function Position(config) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        this._posNode = this.get(BOUNDING_BOX);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
        // WIDGET METHOD OVERLAP
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        Y.after(this._renderUIPosition, this, RENDERUI);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
        Y.after(this._syncUIPosition, this, SYNCUI);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        Y.after(this._bindUIPosition, this, BINDUI);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
     * Static property used to define the default attribute 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
     * configuration introduced by WidgetPosition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     * @property ATTRS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    Position.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
         * @attribute x
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
         * @type number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
         * @default 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
         * @description Page X co-ordinate for the widget. This attribute acts as a facade for the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
         * xy attribute. Changes in position can be monitored by listening for xyChange events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
        x: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
            setter: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
                this._setX(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
            getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
                return this._getX();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
            lazyAdd:false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
         * @attribute y
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
         * @type number
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
         * @default 0
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
         * @description Page Y co-ordinate for the widget. This attribute acts as a facade for the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
         * xy attribute. Changes in position can be monitored by listening for xyChange events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
        y: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            setter: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
                this._setY(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
            getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
                return this._getY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
            },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
            lazyAdd: false
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
         * @attribute xy
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
         * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
         * @default [0,0]
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
         * @description Page XY co-ordinate pair for the widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
        xy: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            value:[0,0],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
            validator: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
                return this._validateXY(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            }
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
     * Default class used to mark the boundingBox of a positioned widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
     * @property POSITIONED_CLASS_NAME
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
     * @default "yui-widget-positioned"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
    Position.POSITIONED_CLASS_NAME = Widget.getClassName(POSITIONED);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    Position.prototype = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
         * Creates/Initializes the DOM to support xy page positioning.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
         * <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
         * This method in invoked after renderUI is invoked for the Widget class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
         * using YUI's aop infrastructure.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
         * </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
         * @method _renderUIPosition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
        _renderUIPosition : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
            this._posNode.addClass(Position.POSITIONED_CLASS_NAME);
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
         * Synchronizes the UI to match the Widgets xy page position state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
         * <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
         * This method in invoked after syncUI is invoked for the Widget class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
         * using YUI's aop infrastructure.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
         * </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
         * @method _syncUIPosition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
        _syncUIPosition : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
            var posNode = this._posNode;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
            if (posNode.getStyle(POSITION) === RELATIVE) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
                this.syncXY();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
            this._uiSetXY(this.get(XY_COORD));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
         * Binds event listeners responsible for updating the UI state in response to 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
         * Widget position related state changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
         * <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
         * This method in invoked after bindUI is invoked for the Widget class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
         * using YUI's aop infrastructure.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
         * </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
         * @method _bindUIPosition
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
        _bindUIPosition :function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
            this.after(XYChange, this._afterXYChange);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
         * Moves the Widget to the specified page xy co-ordinate position.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
         * @method move
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
         * @param {Number} x The new x position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
         * @param {Number} y The new y position
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
         * <p>Or</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
         * @param {Array} x, y values passed as an array ([x, y]), to support
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
         * simple pass through of Node.getXY results
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
        move: function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
            var args = arguments,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
                coord = (Lang.isArray(args[0])) ? args[0] : [args[0], args[1]];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
                this.set(XY_COORD, coord);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
         * Synchronizes the Panel's "xy", "x", and "y" properties with the 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
         * Widget's position in the DOM.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
         * @method syncXY
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        syncXY : function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
            this.set(XY_COORD, this._posNode.getXY(), {src: UI});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
         * Default validator for the XY attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
         * @method _validateXY
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
         * @param {Array} val The XY page co-ordinate value which is being set.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
         * @return {boolean} true if valid, false if not.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
        _validateXY : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
            return (Lang.isArray(val) && Lang.isNumber(val[0]) && Lang.isNumber(val[1]));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
         * Default setter for the X attribute. The setter passes the X value through
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
         * to the XY attribute, which is the sole store for the XY state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
         * @method _setX
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
         * @param {Number} val The X page co-ordinate value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        _setX : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
            this.set(XY_COORD, [val, this.get(XY_COORD)[1]]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
         * Default setter for the Y attribute. The setter passes the Y value through
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
         * to the XY attribute, which is the sole store for the XY state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
         * @method _setY
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
         * @param {Number} val The Y page co-ordinate value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        _setY : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
            this.set(XY_COORD, [this.get(XY_COORD)[0], val]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
         * Default getter for the X attribute. The value is retrieved from 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
         * the XY attribute, which is the sole store for the XY state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
         * @method _getX
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
         * @protected 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
         * @return {Number} The X page co-ordinate value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
        _getX : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
            return this.get(XY_COORD)[0];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
         * Default getter for the Y attribute. The value is retrieved from 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
         * the XY attribute, which is the sole store for the XY state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
         *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
         * @method _getY
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
         * @protected 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
         * @return {Number} The Y page co-ordinate value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
        _getY : function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
            return this.get(XY_COORD)[1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
         * Default attribute change listener for the xy attribute, responsible
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
         * for updating the UI, in response to attribute changes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
         * 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
         * @method _afterXYChange
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
         * @param {EventFacade} e The event facade for the attribute change
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        _afterXYChange : function(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
            if (e.src != UI) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
                this._uiSetXY(e.newVal);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
        /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
         * Updates the UI to reflect the XY page co-ordinates passed in.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
         * 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
         * @method _uiSetXY
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
         * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
         * @param {String} val The XY page co-ordinates value to be reflected in the UI
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
         */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
        _uiSetXY : function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
            this._posNode.setXY(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
    Y.WidgetPosition = Position;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
}, '3.10.3', {"requires": ["base-build", "node-screen", "widget"]});