TabCloseMenu.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ // Very simple plugin for adding a close context menu to tabs
  2. Ext.ux.TabCloseMenu = function(){
  3.     var tabs, menu, ctxItem;
  4.     this.init = function(tp){
  5.         tabs = tp;
  6.         tabs.on('contextmenu', onContextMenu);
  7.     }
  8.     function onContextMenu(ts, item, e){
  9.         if(!menu){ // create context menu on first right click
  10.             menu = new Ext.menu.Menu([{
  11.                 id: tabs.id + '-close',
  12.                 text: 'Close Tab',
  13.                 handler : function(){
  14.                     tabs.remove(ctxItem);
  15.                 }
  16.             },{
  17.                 id: tabs.id + '-close-others',
  18.                 text: 'Close Other Tabs',
  19.                 handler : function(){
  20.                     tabs.items.each(function(item){
  21.                         if(item.closable && item != ctxItem){
  22.                             tabs.remove(item);
  23.                         }
  24.                     });
  25.                 }
  26.             }]);
  27.         }
  28.         ctxItem = item;
  29.         var items = menu.items;
  30.         items.get(tabs.id + '-close').setDisabled(!item.closable);
  31.         var disableOthers = true;
  32.         tabs.items.each(function(){
  33.             if(this != item && this.closable){
  34.                 disableOthers = false;
  35.                 return false;
  36.             }
  37.         });
  38.         items.get(tabs.id + '-close-others').setDisabled(disableOthers);
  39.         menu.showAt(e.getPoint());
  40.     }
  41. };