button-plugin-debug.js revision c857ea22eae75f7e285a2c5e626131e7be23e12c
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek GathrightYUI.add('button-plugin', function(Y) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathrightfunction ButtonPlugin(config) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright ButtonPlugin.superclass.constructor.apply(this, arguments);
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright}
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek GathrightY.extend(ButtonPlugin, Y.ButtonCore, {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright // TODO: point to method (_uiSetLabel, etc) instead of getter/setter
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright _afterNodeGet: function (name) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright var ATTRS = this.constructor.ATTRS,
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright fn = ATTRS[name] && ATTRS[name].getter && this[ATTRS[name].getter];
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright if (fn) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright return new Y.Do.AlterReturn('get ' + name, fn.call(this));
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright }
d35783d338067103badd5ebbb57676c129f5e563Eric Ferraiuolo },
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright _afterNodeSet: function (name, val) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright var ATTRS = this.constructor.ATTRS,
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright fn = ATTRS[name] && ATTRS[name].setter && this[ATTRS[name].setter];
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright if (fn) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright fn.call(this, val);
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright }
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright },
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright _initNode: function(config) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright var node = config.host;
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright this._host = node;
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright Y.Do.after(this._afterNodeGet, node, 'get', this);
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright Y.Do.after(this._afterNodeSet, node, 'set', this);
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright },
d35783d338067103badd5ebbb57676c129f5e563Eric Ferraiuolo
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright destroy: function(){
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright // TODO: Anything?
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright }
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright}, {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright ATTRS: Y.merge(Y.ButtonCore.ATTRS),
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright NAME: 'buttonPlugin',
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright NS: 'button'
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright});
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright// (node)
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright// (node, config)
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright// (config)
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek GathrightButtonPlugin.createNode = function(node, config) {
c857ea22eae75f7e285a2c5e626131e7be23e12cEric Ferraiuolo var template;
d35783d338067103badd5ebbb57676c129f5e563Eric Ferraiuolo
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright if (node && !config) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright if (! (node.nodeType || node.getDOMNode || typeof node == 'string')) {
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright config = node;
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright node = config.srcNode;
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright }
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright }
c857ea22eae75f7e285a2c5e626131e7be23e12cEric Ferraiuolo
c857ea22eae75f7e285a2c5e626131e7be23e12cEric Ferraiuolo config = config || {};
c857ea22eae75f7e285a2c5e626131e7be23e12cEric Ferraiuolo template = config.template || Y.Plugin.Button.prototype.TEMPLATE;
c857ea22eae75f7e285a2c5e626131e7be23e12cEric Ferraiuolo node = node || config.srcNode || Y.DOM.create(template);
c857ea22eae75f7e285a2c5e626131e7be23e12cEric Ferraiuolo
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright return Y.one(node).plug(Y.Plugin.Button, config);
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright};
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
65aeef931a8f8abce78e6f0fafec90308ceaec34Derek GathrightY.namespace('Plugin').Button = ButtonPlugin;
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
06c1e33a270f80929bf9b9dde81f4061d1949fffDerek Gathright
d35783d338067103badd5ebbb57676c129f5e563Eric Ferraiuolo}, '@VERSION@' ,{requires:['button-core', 'cssbutton', 'node-pluginhost']});