【Extjs6】给tabpanel添加右键菜单

var currentItem;
Ext.define('Admin.view.main.MainTabView',{
    extend: 'Ext.tab.Panel',
    xtype: 'maintabview',

    id: 'maintabview',

    items: [],

    plugins: Ext.create('Ext.ux.TabCloseMenu', {
                closeTabText : '关闭当前',
                closeOthersTabsText : '关闭其他',
                closeAllTabsText : '关闭所有',
                //addToHeader: '快捷菜单',
                extraItemsHead : [
                    {
                        text: '快捷菜单',
                        handler : function(menu,item){
                            //alert("添加快捷菜单 "+ item.getId()+" "+item.getItemId()+" "+item.getXType());//+" "+item.getTitle());
                            // text#id形式
                            var textId = currentItem.getItemId(); 
                            var vs = textId.split("#"); 
                            var headerBar = Ext.getCmp("headerBar");
                            var geRenCenter,newItems = new Array();
                            var firstNode = null;
                            var isExist = false;
                            //不存在则添加
                            headerBar.items.each(function(value,index){
                                if(headerBar.items.length > 6 && index == headerBar.items.length-2){
                                    firstNode = value;
                                    //console.log(firstNode);
                                    //firstNode.destroy();
                                }else if(value.text == vs[0]){
                                    isExist = true;
                                }     
                            });
                            //headerBar.suspendLayout = true; 
                            if(firstNode)
                                firstNode.destroy();
                            if(!isExist){
                                    var page = {
                                        iconCls: vs[2],
                                        cls: 'headerStyle',
                                        text: vs[0],
                                        id: vs[1],
                                        tooltip: vs[0],
                                        iconAlign: 'top',
                                        handler: 'onHeaderMenuClick'
                                    };
                                    headerBar.insert(3,page);
                                    //console.log("add a new item");
                            }
                            //headerBar.suspendLayout = false;
                            headerBar.updateLayout(true);

                            //将当前的快捷按钮LocalStorage存储
                            var itemsBak = [];
                            headerBar.items.each(function(value,index){
                                if(index > 2 && index < headerBar.items.length-1){
                                    itemsBak.push({'iconCls':value.iconCls,'text':value.text,'id':value.id});
                                }
                            }); 
                            window.localStorage.setItem("headerBarValue",JSON.stringify(itemsBak));
                            console.log('快捷方式本地化存储: '+JSON.stringify(itemsBak));
                        }
                    }
                ],
                extraItemsTail : ['-', {
                    text : '可关闭',
                    checked : true,
                    hideOnClick : true,
                    handler : function(item) {
                        currentItem.tab.setClosable(item.checked);
                    }
                }],
                listeners : {
                    aftermenu : function() {
                        //currentItem = null;
// var count=0;
// tabPanel.items.each(function(p){
 if(!p.closable)
// count++;
// });
// 
// if(count==0){
// 
// document.getElementById('mapcontentframe').src=pathName+'/map/bin-debug/index.html';
// Ext.getCmp('mapContentPanel').show();
// Ext.getCmp('tabpanelContent').hide();
// }
                    },
                    beforemenu : function(menu, item) {
                        var menuitem = menu.child('*[text="可关闭"]');
                        currentItem = item;
                        menuitem.setChecked(item.closable);
                    }
                }
        })

});

转载于:https://my.oschina.net/u/3702584/blog/1547183

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值