1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The source code</title>
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
</head>
<body onload="prettyPrint();">
<pre class="prettyprint lang-js">/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
Ext.ns('Ext.ux');
Ext.ux.Tabs = Ext.extend(Ext.util.Observable, {
// Configuration options
activeTab: 0,
// Our class constructor
constructor : function(element, config) {
Ext.apply(this, config);
Ext.ux.Tabs.superclass.constructor.call(this);
this.addEvents(
'beforetabchange',
'tabchange'
);
this.el = Ext.get(element);
this.init();
},
init : function() {
var me = this;
this.el.addClass('ux-tabs-container');
this.tabStrip = this.el.child('ul');
this.tabStrip.addClass('ux-tabs-strip');
this.tabStrip.on('click', this.onStripClick, this, {delegate: 'a'});
this.tabs = this.tabStrip.select('> li');
this.cards = this.el.select('> div');
this.cardsContainer = this.el.createChild({
cls: 'ux-tabs-cards'
});
this.cardsContainer.setWidth(this.el.getWidth());
this.cards.addClass('ux-tabs-card');
this.cards.appendTo(this.cardsContainer);
this.el.createChild({
cls: 'ux-tabs-clearfix'
});
this.setActiveTab(this.activeTab || 0);
},
onStripClick : function(ev, t) {
if(t && t.href && t.href.indexOf('#')) {
ev.preventDefault();
this.setActiveTab(t.href.split('#')[1]);
}
},
setActiveTab : function(tab) {
var card;
if(Ext.isString(tab)) {
card = Ext.get(tab);
tab = this.tabStrip.child('a[href=#' + tab + ']').parent();
}
else if (Ext.isNumber(tab)) {
tab = this.tabs.item(tab);
card = Ext.get(tab.first().dom.href.split('#')[1]);
}
if(tab && card && this.fireEvent('beforetabchange', tab, card) !== false) {
card.radioClass('ux-tabs-card-active');
tab.radioClass('ux-tabs-tab-active');
this.fireEvent('tabchange', tab, card);
}
}
});</pre>
</body>
</html>
|