src/cm/media/js/lib/yui/yui3-3.15.0/build/button-plugin/button-plugin.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('button-plugin', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
* A Button Plugin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
*
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
* @module button-plugin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
* @since 3.5.0
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
* @class Button
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
* @param config {Object} Configuration object
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
* @extends ButtonCore
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
* @constructor
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
* @namespace Plugin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
function ButtonPlugin() {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
    ButtonPlugin.superclass.constructor.apply(this, arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
Y.extend(ButtonPlugin, Y.ButtonCore, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    * @method _afterNodeGet
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
    * @param name {string}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
    _afterNodeGet: function (name) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
        // TODO: point to method (_uiSetLabel, etc) instead of getter/setter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
        var ATTRS = this.constructor.ATTRS,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
            fn = ATTRS[name] && ATTRS[name].getter && this[ATTRS[name].getter];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
        if (fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
            return new Y.Do.AlterReturn('get ' + name, fn.call(this));
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
    * @method _afterNodeSet
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    * @param name {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
    * @param val {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    _afterNodeSet: function (name, val) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
        var ATTRS = this.constructor.ATTRS,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
            fn = ATTRS[name] && ATTRS[name].setter && this[ATTRS[name].setter];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
        if (fn) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
            fn.call(this, val);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
    * @method _initNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
    * @param config {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
    _initNode: function(config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
        var node = config.host;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
        this._host = node;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
        Y.Do.after(this._afterNodeGet, node, 'get', this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
        Y.Do.after(this._afterNodeSet, node, 'set', this);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
    },
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
    * @method destroy
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
    destroy: function(){
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
        // Nothing to do, but things are happier with it here
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
}, {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
    * Attribute configuration.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
    * @property ATTRS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
    * @type {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
    * @private
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
    * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
    ATTRS: Y.merge(Y.ButtonCore.ATTRS),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    85
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    86
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    87
    * Name of this component.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    88
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    89
    * @property NAME
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    90
    * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    91
    * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    92
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    93
    NAME: 'buttonPlugin',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    94
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    95
    /**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    96
    * Namespace of this component.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    97
    *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    98
    * @property NS
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    99
    * @type String
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   100
    * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   101
    */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   102
    NS: 'button'
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   103
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   104
});
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   105
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   106
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   107
* @method createNode
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   108
* @description A factory that plugs a Y.Node instance with Y.Plugin.Button
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   109
* @param node {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   110
* @param config {Object}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   111
* @return {Object} A plugged Y.Node instance
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   112
* @public
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   113
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   114
ButtonPlugin.createNode = function(node, config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   115
    var template;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   116
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   117
    if (node && !config) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   118
        if (! (node.nodeType || node.getDOMNode || typeof node === 'string')) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   119
            config = node;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   120
            node = config.srcNode;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   121
        }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   122
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   123
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   124
    config   = config || {};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   125
    template = config.template || Y.Plugin.Button.prototype.TEMPLATE;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   126
    node     = node || config.srcNode || Y.DOM.create(template);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   127
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   128
    return Y.one(node).plug(Y.Plugin.Button, config);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   129
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   130
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   131
Y.namespace('Plugin').Button = ButtonPlugin;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   132
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   133
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
   134
}, '@VERSION@', {"requires": ["button-core", "cssbutton", "node-pluginhost"]});