source:
trunk/workshop-routing-foss4g/web/ext/src/ext-core/examples/tabs/tabs.js
@
81
Revision 76, 1.9 KB checked in by djay, 12 years ago (diff) | |
---|---|
|
Line | |
---|---|
1 | /*! |
2 | * Ext JS Library 3.4.0 |
3 | * Copyright(c) 2006-2011 Sencha Inc. |
4 | * licensing@sencha.com |
5 | * http://www.sencha.com/license |
6 | */ |
7 | Ext.ns('Ext.ux'); |
8 | |
9 | Ext.ux.Tabs = Ext.extend(Ext.util.Observable, { |
10 | // Configuration options |
11 | activeTab: 0, |
12 | |
13 | // Our class constructor |
14 | constructor : function(element, config) { |
15 | Ext.apply(this, config); |
16 | Ext.ux.Tabs.superclass.constructor.call(this); |
17 | |
18 | this.addEvents( |
19 | 'beforetabchange', |
20 | 'tabchange' |
21 | ); |
22 | |
23 | this.el = Ext.get(element); |
24 | this.init(); |
25 | }, |
26 | |
27 | init : function() { |
28 | var me = this; |
29 | |
30 | this.el.addClass('ux-tabs-container'); |
31 | |
32 | this.tabStrip = this.el.child('ul'); |
33 | this.tabStrip.addClass('ux-tabs-strip'); |
34 | |
35 | this.tabStrip.on('click', this.onStripClick, this, {delegate: 'a'}); |
36 | |
37 | this.tabs = this.tabStrip.select('> li'); |
38 | this.cards = this.el.select('> div'); |
39 | |
40 | this.cardsContainer = this.el.createChild({ |
41 | cls: 'ux-tabs-cards' |
42 | }); |
43 | this.cardsContainer.setWidth(this.el.getWidth()); |
44 | |
45 | this.cards.addClass('ux-tabs-card'); |
46 | this.cards.appendTo(this.cardsContainer); |
47 | |
48 | this.el.createChild({ |
49 | cls: 'ux-tabs-clearfix' |
50 | }); |
51 | |
52 | this.setActiveTab(this.activeTab || 0); |
53 | }, |
54 | |
55 | onStripClick : function(ev, t) { |
56 | if(t && t.href && t.href.indexOf('#')) { |
57 | ev.preventDefault(); |
58 | this.setActiveTab(t.href.split('#')[1]); |
59 | } |
60 | }, |
61 | |
62 | setActiveTab : function(tab) { |
63 | var card; |
64 | if(Ext.isString(tab)) { |
65 | card = Ext.get(tab); |
66 | tab = this.tabStrip.child('a[href=#' + tab + ']').parent(); |
67 | } |
68 | else if (Ext.isNumber(tab)) { |
69 | tab = this.tabs.item(tab); |
70 | card = Ext.get(tab.first().dom.href.split('#')[1]); |
71 | } |
72 | |
73 | if(tab && card && this.fireEvent('beforetabchange', tab, card) !== false) { |
74 | card.radioClass('ux-tabs-card-active'); |
75 | tab.radioClass('ux-tabs-tab-active'); |
76 | this.fireEvent('tabchange', tab, card); |
77 | } |
78 | } |
79 | }); |
Note: See TracBrowser
for help on using the repository browser.