Пример #1
0
KISSY.add("tabs/bar", ["toolbar", "./bar-render"], function(S, require) {
  var Toolbar = require("toolbar");
  var BarRender = require("./bar-render");
  var TabBar = Toolbar.extend({bindUI:function() {
    var self = this;
    self.on("afterSelectedChange", function(e) {
      if(e.newVal && e.target.isTabsTab) {
        self.set("selectedTab", e.target)
      }
    })
  }, syncUI:function() {
    var bar = this, children = bar.get("children");
    S.each(children, function(c) {
      if(c.get("selected")) {
        bar.setInternal("selectedTab", c);
        return false
      }
      return undefined
    })
  }, handleKeyDownInternal:function(e) {
    var self = this;
    var current = self.get("selectedTab");
    var next = self.getNextItemByKeyDown(e, current);
    if(typeof next === "boolean") {
      return next
    }else {
      next.set("selected", true);
      return true
    }
  }, _onSetSelectedTab:function(v, e) {
    var prev;
    if(v) {
      if(e && (prev = e.prevVal)) {
        prev.set("selected", false)
      }
      v.set("selected", true)
    }
  }, _onSetHighlightedItem:function(v, e) {
    var self = this;
    self.callSuper(v, e);
    if(self.get("changeType") === "mouse") {
      self._onSetSelectedTab.apply(self, arguments)
    }
  }}, {ATTRS:{selectedTab:{}, changeType:{value:"click"}, defaultChildCfg:{value:{xclass:"tabs-tab"}}, xrender:{value:BarRender}}, xclass:"tabs-bar"});
  TabBar.ChangeType = {CLICK:"click", MOUSE:"mouse"};
  return TabBar
});
Пример #2
0
Файл: bar.js Проект: Xyzal/kissy
KISSY.add(function (S, require) {
    var Toolbar = require('toolbar');
    var BarRender = require('./bar-render');
    /**
     * tab bar container for tab tabs.xclass: 'tabs-bar'.
     * @class  KISSY.Tabs.Bar
     * @extends KISSY.Toolbar
     */
    var TabBar = Toolbar.extend({
        bindUI: function () {
            var self = this;
            self.on("afterSelectedChange", function (e) {
                if (e.newVal && e.target.isTabsTab) {
                    self.set("selectedTab", e.target);
                }
            });
        },

        syncUI: function () {
            var bar = this,
                children = bar.get("children");
            S.each(children, function (c) {
                if (c.get("selected")) {
                    bar.setInternal("selectedTab", c);
                    return false;
                }
                return undefined;
            });
        },

        handleKeyDownInternal: function (e) {
            var self = this;
            var current = self.get('selectedTab');
            var next = self.getNextItemByKeyDown(e, current);
            if (typeof next === 'boolean') {
                return next;
            } else {
                next.set('selected', true);
                return true;
            }
        },

        _onSetSelectedTab: function (v, e) {
            var prev;
            if (v) {
                if (e && (prev = e.prevVal)) {
                    prev.set("selected", false);
                }
                v.set("selected", true);
            }
        },

        _onSetHighlightedItem: function (v, e) {
            var self = this;
            self.callSuper(v, e);
            if (self.get('changeType') == 'mouse') {
                self._onSetSelectedTab.apply(self, arguments);
            }
        }

    }, {
        ATTRS: {
            selectedTab: {
            },
            changeType: {
                value: "click"
            },
            defaultChildCfg: {
                value: {
                    xclass: 'tabs-tab'
                }
            },
            xrender: {
                value: BarRender
            }
        },
        xclass: 'tabs-bar'
    });

    /**
     * tabs change type
     * @enum {String}  KISSY.Tabs.ChangeType
     */
    TabBar.ChangeType = {
        /**
         * click
         */
        CLICK: "click",
        /**
         * mouse
         */
        MOUSE: "mouse"
    };

    return TabBar;
});
Пример #3
0
], function (S, require, exports, module) {
    /**
 * @ignore
 * TabBar for KISSY.
 * @author yiminghe@gmail.com
 */
    var Toolbar = require('toolbar');
    var util = require('util');    /**
 * tab bar container for tab tabs.xclass: 'tabs-bar'.
 * @class  KISSY.Tabs.Bar
 * @extends KISSY.Toolbar
 */
    /**
 * tab bar container for tab tabs.xclass: 'tabs-bar'.
 * @class  KISSY.Tabs.Bar
 * @extends KISSY.Toolbar
 */
    var TabBar = Toolbar.extend({
            beforeCreateDom: function (renderData) {
                renderData.elAttrs.role = 'tablist';
            },
            bindUI: function () {
                var self = this;
                self.on('afterSelectedChange', function (e) {
                    if (e.newVal && e.target.isTabsTab) {
                        self.set('selectedTab', e.target);
                    }
                });
            },
            syncUI: function () {
                var self = this, children = self.get('children');
                util.each(children, function (c) {
                    if (c.get('selected')) {
                        self.setInternal('selectedTab', c);
                        return false;
                    }
                    return undefined;
                });
            },
            handleKeyDownInternal: function (e) {
                var self = this;
                var current = self.get('selectedTab');
                var next = self.getNextItemByKeyDown(e, current);
                if (typeof next === 'boolean') {
                    return next;
                } else {
                    next.set('selected', true);
                    return true;
                }
            },
            _onSetSelectedTab: function (v, e) {
                var prev;
                if (v) {
                    if (e && (prev = e.prevVal)) {
                        prev.set('selected', false);
                    }
                    v.set('selected', true);
                }
            },
            _onSetHighlightedItem: function (v, e) {
                var self = this;
                self.callSuper(v, e);
                if (self.get('changeType') === 'mouse') {
                    self._onSetSelectedTab.apply(self, arguments);
                }
            }
        }, {
            ATTRS: {
                selectedTab: {},
                changeType: { value: 'click' },
                defaultChildCfg: {
                    valueFn: function () {
                        return { xclass: 'tabs-tab' };
                    }
                }
            },
            xclass: 'tabs-bar'
        });    /**
 * tabs change type
 * @enum {String}  KISSY.Tabs.ChangeType
 */
    /**
 * tabs change type
 * @enum {String}  KISSY.Tabs.ChangeType
 */
    TabBar.ChangeType = {
        /**
     * click
     */
        CLICK: 'click',
        /**
     * mouse
     */
        MOUSE: 'mouse'
    };
    module.exports = TabBar;
});
Пример #4
0
var TabBar = Toolbar.extend({
    beforeCreateDom: function (renderData) {
        renderData.elAttrs.role = 'tablist';
    },

    bindUI: function () {
        var self = this;
        self.on('afterSelectedChange', function (e) {
            if (e.newVal && e.target.isTabsTab) {
                self.set('selectedTab', e.target);
            }
        });
    },

    syncUI: function () {
        var self = this,
            children = self.get('children');
        util.each(children, function (c) {
            if (c.get('selected')) {
                self.setInternal('selectedTab', c);
                return false;
            }
            return undefined;
        });
    },

    handleKeyDownInternal: function (e) {
        var self = this;
        var current = self.get('selectedTab');
        var next = self.getNextItemByKeyDown(e, current);
        if (typeof next === 'boolean') {
            return next;
        } else {
            next.set('selected', true);
            return true;
        }
    },

    _onSetSelectedTab: function (v, e) {
        var prev;
        if (v) {
            if (e && (prev = e.prevVal)) {
                prev.set('selected', false);
            }
            v.set('selected', true);
        }
    },

    _onSetHighlightedItem: function (v, e) {
        var self = this;
        self.callSuper(v, e);
        if (self.get('changeType') === 'mouse') {
            self._onSetSelectedTab.apply(self, arguments);
        }
    }

}, {
    ATTRS: {
        selectedTab: {
        },
        changeType: {
            value: 'click'
        },
        defaultChildCfg: {
            valueFn: function () {
                return {
                    xclass: 'tabs-tab'
                };
            }
        }
    },
    xclass: 'tabs-bar'
});