Search
Write a publication
Pull to refresh

Comments 26

Спасибо, но раз нет демо — описали бы на словах сам эффект.
Ну… сейчас добавлю :) На самом деле эффект простой. Окно превращается в одну из вкладок на TabPanel и в обратную сторону, становится окошком
Добавил описание, еще можно скачать архив, в нем полностью работоспособное демо. Библиотеки дергаются с dev.sencha.com
Да вроде бы тут есть же скриншот :)
«пока карма позволяет, спасибо плюсанувшим»

спасибо тебе, что правильно и со смыслом пишешь!
А почему бы не сделать плагином? Так можно будет к любому окну добавлять :)
Плагином не получилось, были свои сложности. С другой стороны вашему компоненту достаточно наследовать от TabWindow, вместо Window, результат будет тот же
А если этот компонент сторонний то что делать его менять по сути дела этот функционал к окну не чего не добавляет а просто связывает два компонента по этому можно и плагином я уверен.
Я хотел изначально сделать плагином, но были сложности с tools, я бы не смог кнопочку «прикрепить» сделать перед кнопками закрыть и развернуть на весь экран, поэтому что этого не позволяет сделать очередность вызовов initComponent, согласитесь, это не очень красиво. А извращаться например с position: absolute и координатами тоже не хотелось.
Вам не кажется что конкретно вкладки подразумевают переключение между одноразмерными страницами(любые вкладки что в ежедневнике, что в примерах extjs, jquery и т.п), ваше расширение меня например ввело в ступор. Оно не логично.
А переключение между окнами аля десктоп виндовс давно (года 3 точно) реализовано в примере dev.sencha.com/deploy/dev/examples/desktop/desktop.html
Мое приложение не аля десктоп. Главным компонентом там является TabPanel, куда прикажете сворачивать окна? :)
я о том. что если вы работаете с окнами таб панели немного не уместны, они подразумевают все-таки, что вы переключаете окна ограниченные бордером таб панели, а не окна в середине этого бордера. Имхо, есть разница между закругленным со всех сторон боттоном обозначающим окно(все-равно где он находится) и таб панелью.
На самом деле задача была вполне конкретной, сворачивать окна в табпанель, трансформируя при этом окно во вкладку (обычную панель прикрепленную к табпанели). Поэтому, раз моему начальству потребовалась реализация этой задачи на практике, возможно и еще кому-то пригодится.
>>конкретно вкладки подразумевают переключение между одноразмерными страницами
необязательно:


не всегда нужны большие окна
пример посмотрели?? никто не спорит что переключение бывает нужно. Но при переключении вкладок подразумевается что вкладка отгораживается по линии(на вашем скриншоте это светлосерая Install VMvare) соответственно googlemail по логике находится под ней. все-таки пример посмотрите, он малость логичнее.
На форуме extjs присутствует вот такая реализация

[code]
Ext.override(Ext.Panel, {
makeDockable: function() {
var o = this.ownerCt;
if (!o || !(o instanceof Ext.TabPanel)) {
return;
}
Ext.fly(o.getTabEl(this)).on(«dblclick», this.undock, this);
},

undock: function() {
var h = this.getEl().getHeight();
var w = this.getEl().getWidth();
var o = this.ownerCt;
o.remove(this);
var win;
win = new Ext.Window({
renderTo: Ext.getBody(),
title: this.title,
constrain: true,
items: this,
tools: [{
id: 'pin',
qtip: 'Redock to original parent',
handler: function() {
win.remove(this);
o.add(this);
o.setActiveTab(this);
o.doLayout();
win.destroy();
this.makeDockable(); // The tab selector is new.
},
scope: this
}]
});
win.setHeight(h);
win.setWidth(w);
o.doLayout();
win.show();
}
});
[/code]
Моя не создает новых инстансов панелей или окошек:)
Да вышеприведенный пример делает тоже самое, создает новое окно ( в вашем случае это new Ext.Helper.TabWindow() ), и производит манипуляции с табпанелью (this.tabpanel.remove / o.remove и this.tabpanel.add / o.add для вашего и моего примера соответсвенно). Разворачиваться это окошко также может, при добавлении ему свойства maximizable. А вот свойство minimizable ни в вашем, ни в вышеприведенном примере увы не поддерживается, так что про сворачивание я не понял.
А где можно пример посмотреть? А то не совсем понял принцип работы
Разобрался… Ну у меня в расширении при включении/выключении окна в табпанель, не создается каждый раз инстанс окна. У меня по сути окно трансформируется в панель и обратно из панели в окно.
И да, моя сворачивается и разворачивается :)
UFO landed and left these words here
Sign up to leave a comment.

Articles