Ext.Helper.TabWindow
Выкладываю расширение (пока карма позволяет, спасибо плюсанувшим) Ext.Window -> Ext.Helper.TabWindow, которое вполне себе может сворачиваться в TabPanel ну и соответственно разворачиваться обратно в окно.
UPD. В краце, те кто знаком с компонентом TabPanel (панель реализующая мультивкладки, как любой современный браузер например), знают что в качестве вкладок TabPanel выступает компонент Panel, в свою очередь Window расширяет Panel. Передо мной стояла задача закрепить на TabPanel — Window инстансы, с этой целью и был расширен компонент Window.
Сразу скажу что не претендую на приз за clear style code, знания по extjs у меня есть, но не такие как хотелось бы, поэтому расширение прежде всего работает, а код… Ну я старался, честно.

Для данного эффекта пришлось расширять как Ext.Window, так и Ext.TabPanel, поэтому в архиве ниже вы найдете еще и класс Ext.ExtendTabPanel
Сначала пытался оформить в качестве плагина, но были свои ограничения, поэтому плюнул и переписал под расширение.
Кода достаточно много, поэтому не знаю даже выкладывать его сюда или нет… Пожалуй весь не буду…
Ext.namespace('Ext.Helper');
Ext.Helper.TabWindow = Ext.extend(Ext.Window, {
tabpanel : null, //Ссылка на extendtabpanel Этот параметр обязателен, ибо крепится к чему-то ведь должно,
bindable : false, //true, чтобы вообще была возможность крепить
autobinding : false, //Передается в качестве параметра, если true, то соответсвенно крепится на tabpanel автоматом
isTab : function() {}, //возвращает true - если в TabPanel, иначе false
bind : function() {}, //закрепить на панель
unbind : function() {}, //открепить
});
Ext.reg('tabwindow', Ext.Helper.TabWindow);
Пример:
new Ext.Helper.TabWindow({
tabpanel : tabpanel,
width : 400,
height : 300,
title : 'bind window ' ,
maximizable : true,
bindable : true
}).show();
UPD: В архиве полностью рабочий пример, поэтому кому надо и так разберется, спасибо за внимание!
P.S. Если вдруг архива не окажется там где нужно, пишите, восстановлю…