日期:2014-05-16 浏览次数:20841 次
var a = {
    addTab : function(_name, _id, _css, _link) {
        // 动态创建tab标签的id
        var tabId = 'tab_' + _id;
        // 动态创建tab标签的标题
        var tabTitle = _name;
        // 动态获取tree的某个节点的链接
        var tabLink = _link;
        // 获取主tab组件
        var centerPanel = Ext.getCmp('MainTab');
        // 根据id获取centerPanel组件的直接子组件的引用
        var tab = centerPanel.getComponent(tabId);
        // 这个要传到load页去,很关键,以后的布局要靠它
        var subMainId = 'tab_' + _id + '_main';
        
        //如果存在第0个元素 先将它的activate事件去掉 
            if (centerPanel.items) {
                var fistpanel = centerPanel.items.get(0);
                if (fistpanel) {
                    fistpanel.removeListener("activate", this.onActiveTabSize);
                }
            }
            centerPanel.removeAll(); //此处删掉TabPanel中的Panel
        /**
         * 如果可以获取到tab页,就不用再次添加tab页了 (获取不到时tab=undefined)
         * (也就是说如果当前tab页已经渲染就不用再次添加该tab了)
         */
        if (!tab) {
            
            // 动态创建tab
            var newTab = centerPanel.add(new Ext.Panel({
                        id : tabId, // tab的唯一id
                        title : tabTitle, // tab的标题
                        iconCls : 'project-treeNodeLeafIcon', // 图片
                        layout : 'fit', // 填充布局,它不会让load进来的东西改变大小
                        border : false, // 无边框
                        closable : true, // 有关闭选项卡按钮
                        listeners : {
                            // 侦听tab页被激活里触发的动作
                            activate : this.onActiveTabSize,
                            scope : this