A basic tab container. TabPanels can be used exactly like a standard {@link Ext.Panel}
* for layout purposes, but also have special support for containing child Components
@@ -561,7 +567,7 @@ new Ext.TabPanel({
*
cls : String
The CSS class name
*
iconCls : String
A CSS class to provide appearance for an icon.
*
- * @param {BoxComponent} item The {@link Ext.BoxComponent BoxComponent} for which to create a selector element in the tab strip.
+ * @param {Ext.BoxComponent} item The {@link Ext.BoxComponent BoxComponent} for which to create a selector element in the tab strip.
* @return {Object} An object hash containing the properties required to render the selector element.
*/
getTemplateArgs : function(item) {
@@ -590,9 +596,6 @@ new Ext.TabPanel({
if(this.rendered){
var items = this.items;
this.initTab(c, items.indexOf(c));
- if(items.getCount() == 1){
- this.syncSize();
- }
this.delegateUpdates();
}
},
@@ -745,13 +748,14 @@ new Ext.TabPanel({
// private
delegateUpdates : function(){
+ var rendered = this.rendered;
if(this.suspendUpdates){
return;
}
- if(this.resizeTabs && this.rendered){
+ if(this.resizeTabs && rendered){
this.autoSizeTabs();
}
- if(this.enableTabScroll && this.rendered){
+ if(this.enableTabScroll && rendered){
this.autoScrollTabs();
}
},
@@ -819,13 +823,15 @@ new Ext.TabPanel({
Ext.fly(oldEl).removeClass('x-tab-strip-active');
}
}
+ this.activeTab = item;
if(item){
var el = this.getTabEl(item);
Ext.fly(el).addClass('x-tab-strip-active');
- this.activeTab = item;
this.stack.add(item);
this.layout.setActiveItem(item);
+ // Need to do this here, since setting the active tab slightly changes the size
+ this.delegateUpdates();
if(this.scrolling){
this.scrollToTab(item, this.animScroll);
}
@@ -865,10 +871,11 @@ new Ext.TabPanel({
pos = this.getScrollPos(),
l = this.edge.getOffsetsTo(this.stripWrap)[0] + pos;
- if(!this.enableTabScroll || count < 1 || cw < 20){ // 20 to prevent display:none issues
+ if(!this.enableTabScroll || cw < 20){ // 20 to prevent display:none issues
return;
}
- if(l <= tw){
+ if(count == 0 || l <= tw){
+ // ensure the width is set if there's no tabs
wd.scrollLeft = 0;
wrap.setWidth(tw);
if(this.scrolling){
@@ -1131,6 +1138,6 @@ Ext.TabPanel.AccessStack = function(){
}
};
};
-
-
+
+
\ No newline at end of file