All Downloads are FREE. Search and download functionalities are using the official Maven repository.

mgnl-resources.messages.js.TabCloseMenu.js Maven / Gradle / Ivy

/*
 * Ext JS Library 2.1
 * Copyright(c) 2006-2008, Ext JS, LLC.
 * [email protected]
 *
 * http://extjs.com/license
 */
// Very simple plugin for adding a close context menu to tabs
Ext.ux.TabCloseMenu = function() {
	var tabs, menu, ctxItem;
	this.init = function(tp) {
		tabs = tp;
		tabs.on('contextmenu', onContextMenu);
	}
	function onContextMenu(ts, item, e) {
		if (!menu) { // create context menu on first right click
			menu = new Ext.menu.Menu( [ {
				id :tabs.id + '-close',
				text :'Close Tab',
				handler : function() {
					tabs.remove(ctxItem);
				}
			}, {
				id :tabs.id + '-close-others',
				text :'Close Other Tabs',
				handler : function() {
					tabs.items.each( function(item) {
						if (item.closable && item != ctxItem) {
							tabs.remove(item);
						}
					});
				}
			} ]);
		}
		ctxItem = item;
		var items = menu.items;
		items.get(tabs.id + '-close').setDisabled(!item.closable);
		var disableOthers = true;
		tabs.items.each( function() {
			if (this != item && this.closable) {
				disableOthers = false;
				return false;
			}
		});
		items.get(tabs.id + '-close-others').setDisabled(disableOthers);
		menu.showAt(e.getPoint());
	}
};




© 2015 - 2025 Weber Informatics LLC | Privacy Policy