/*!
- * Ext JS Library 3.0.0
+ * Ext JS Library 3.1.0
* Copyright(c) 2006-2009 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
\r
onRender: function(ct, position){\r
Ext.TabPanel.superclass.onRender.call(this, ct, position);\r
-\r
if(this.plain){\r
var pos = this.tabPosition == 'top' ? 'header' : 'footer';\r
this[pos].addClass('x-tab-panel-'+pos+'-plain');\r
this.bwrap.addClass('x-grouptabs-bwrap');\r
this.body.addClass('x-tab-panel-body-'+this.tabPosition + ' x-grouptabs-panel-body');\r
\r
- if (!this.itemTpl) {\r
+ if (!this.groupTpl) {\r
var tt = new Ext.Template(\r
'<li class="{cls}" id="{id}">', \r
'<a class="x-grouptabs-expand" onclick="return false;"></a>', \r
);\r
tt.disableFormats = true;\r
tt.compile();\r
- Ext.ux.GroupTabPanel.prototype.itemTpl = tt;\r
+ Ext.ux.GroupTabPanel.prototype.groupTpl = tt;\r
}\r
-\r
this.items.each(this.initGroup, this);\r
},\r
\r
\r
// private\r
findTargets: function(e){\r
- var item = null;\r
- var itemEl = e.getTarget('li', this.strip);\r
+ var item = null,\r
+ itemEl = e.getTarget('li', this.strip);\r
if (itemEl) {\r
item = this.findById(itemEl.id.split(this.idDelimiter)[1]);\r
if (item.disabled) {\r
groupEl = this.getGroupEl(groupEl);\r
}\r
Ext.fly(groupEl).addClass('x-grouptabs-expanded');\r
+ this.syncTabJoint();\r
},\r
\r
toggleGroup: function(groupEl){\r
Ext.fly(groupEl).toggleClass('x-grouptabs-expanded');\r
this.syncTabJoint();\r
}, \r
- \r
+\r
+ collapseGroup: function(groupEl){\r
+ if(groupEl.isXType) {\r
+ groupEl = this.getGroupEl(groupEl);\r
+ }\r
+ Ext.fly(groupEl).removeClass('x-grouptabs-expanded');\r
+ this.syncTabJoint();\r
+ },\r
+ \r
syncTabJoint: function(groupEl){\r
if (!this.tabJoint) {\r
return;\r
},\r
\r
initGroup: function(group, index){\r
- var before = this.strip.dom.childNodes[index]; \r
- var p = this.getTemplateArgs(group);\r
+ var before = this.strip.dom.childNodes[index], \r
+ p = this.getTemplateArgs(group);\r
if (index === 0) {\r
p.cls += ' x-tab-first';\r
}\r
p.cls += ' x-grouptabs-main';\r
p.text = group.getMainItem().title;\r
\r
- var el = before ? this.itemTpl.insertBefore(before, p) : this.itemTpl.append(this.strip, p);\r
- \r
- var tl = this.createCorner(el, 'top-' + this.tabPosition);\r
- var bl = this.createCorner(el, 'bottom-' + this.tabPosition);\r
+ var el = before ? this.groupTpl.insertBefore(before, p) : this.groupTpl.append(this.strip, p),\r
+ tl = this.createCorner(el, 'top-' + this.tabPosition),\r
+ bl = this.createCorner(el, 'bottom-' + this.tabPosition);\r
\r
+ group.tabEl = el;\r
if (group.expanded) {\r
this.expandGroup(el);\r
}\r
tl.setTop('-5px');\r
}\r
\r
- this.mon(group, 'changemainitem', this.onGroupChangeMainItem, this);\r
- this.mon(group, 'beforetabchange', this.onGroupBeforeTabChange, this);\r
+ this.mon(group, {\r
+ scope: this,\r
+ changemainitem: this.onGroupChangeMainItem,\r
+ beforetabchange: this.onGroupBeforeTabChange\r
+ });\r
},\r
\r
setActiveGroup : function(group) {\r
group = this.getComponent(group);\r
- if(!group || this.fireEvent('beforegroupchange', this, group, this.activeGroup) === false){\r
- return;\r
+ if(!group){\r
+ return false;\r
}\r
if(!this.rendered){\r
this.activeGroup = group;\r
- return;\r
+ return true;\r
}\r
- if(this.activeGroup != group){\r
+ if(this.activeGroup != group && this.fireEvent('beforegroupchange', this, group, this.activeGroup) !== false){\r
if(this.activeGroup){\r
var oldEl = this.getGroupEl(this.activeGroup);\r
if(oldEl){\r
Ext.fly(oldEl).removeClass('x-grouptabs-strip-active');\r
}\r
- this.activeGroup.fireEvent('deactivate', this.activeTab);\r
}\r
\r
var groupEl = this.getGroupEl(group);\r
this.layout.setActiveItem(group);\r
this.syncTabJoint(groupEl);\r
\r
- group.fireEvent('activate', group);\r
this.fireEvent('groupchange', this, group);\r
- } \r
+ return true;\r
+ }\r
+ return false; \r
},\r
\r
onGroupBeforeTabChange: function(group, newTab, oldTab){\r
if(group !== this.activeGroup || newTab !== oldTab) {\r
this.strip.select('.x-grouptabs-sub > li.x-grouptabs-strip-active', true).removeClass('x-grouptabs-strip-active');\r
} \r
- \r
this.expandGroup(this.getGroupEl(group));\r
- this.setActiveGroup(group);\r
+ if(group !== this.activeGroup) {\r
+ return this.setActiveGroup(group);\r
+ } \r
},\r
\r
getFrameHeight: function(){\r