2 * Ext JS Library 2.2.1
\r
3 * Copyright(c) 2006-2009, Ext JS, LLC.
\r
4 * licensing@extjs.com
\r
6 * http://extjs.com/license
\r
10 * ================ TabPanel with nested layouts =======================
\r
12 // fake grid data used below in the tabsNestedLayouts config
\r
14 ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],
\r
15 ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],
\r
16 ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
\r
17 ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],
\r
18 ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],
\r
19 ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],
\r
20 ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],
\r
21 ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],
\r
22 ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],
\r
23 ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],
\r
24 ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],
\r
25 ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],
\r
26 ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],
\r
27 ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],
\r
28 ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],
\r
29 ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],
\r
30 ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],
\r
31 ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],
\r
32 ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],
\r
33 ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'],
\r
34 ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],
\r
35 ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],
\r
36 ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],
\r
37 ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],
\r
38 ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],
\r
39 ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],
\r
40 ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],
\r
41 ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],
\r
42 ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am']
\r
45 var tabsNestedLayouts = {
\r
47 id: 'tabs-nested-layouts-panel',
\r
48 title: 'TabPanel with Nested Layouts',
\r
59 bodyStyle: 'padding:10px;',
\r
61 html: 'Some content'
\r
69 title: 'Inner Tab 1',
\r
70 bodyStyle: 'padding:10px;',
\r
71 html: 'See Inner Tab 2 for another nested BorderLayout.'
\r
73 title: 'Inner Tab 2',
\r
74 cls: 'inner-tab-custom', // custom styles in layout-browser.css
\r
76 // Make sure IE can still calculate dimensions after a resize when the tab is not active.
\r
77 // With display mode, if the tab is rendered but hidden, IE will mess up the layout on show:
\r
78 hideMode: Ext.isIE ? 'offsets' : 'display',
\r
87 cmargins: '5 5 5 5',
\r
89 bodyStyle:'padding:10px;',
\r
95 tabPosition: 'bottom',
\r
98 // Panels that are used as tabs do not have title bars since the tab
\r
99 // itself is the title container. If you want to have a full title
\r
100 // bar within a tab, you can easily nest another panel within the tab
\r
101 // with layout:'fit' to acheive that:
\r
102 title: 'Bottom Tab',
\r
105 title: 'Interior Content',
\r
106 bodyStyle:'padding:10px;',
\r
108 html: 'See the next tab for a nested grid. The grid is not rendered until its tab is first accessed.'
\r
111 // A common mistake when adding grids to a layout is creating a panel first,
\r
112 // then adding the grid to it. GridPanel (xtype:'grid') is a Panel subclass,
\r
113 // so you can add it directly as an item into a container. Typically you will
\r
114 // want to specify layout:'fit' on GridPanels so that they'll size along with
\r
115 // their container and take up the available space.
\r
116 title: 'Nested Grid',
\r
119 store: new Ext.data.SimpleStore({
\r
122 {name: 'price', type: 'float'},
\r
123 {name: 'change', type: 'float'},
\r
124 {name: 'pctChange', type: 'float'},
\r
125 {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
\r
129 {id:'company',header: "Company", width: 160, sortable: true, dataIndex: 'company'},
\r
130 {header: "Price", width: 75, sortable: true, renderer: 'usMoney', dataIndex: 'price'},
\r
131 {header: "Change", width: 75, sortable: true, dataIndex: 'change'},
\r
132 {header: "% Change", width: 75, sortable: true, dataIndex: 'pctChange'},
\r
133 {header: "Last Updated", width: 85, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
\r
136 autoExpandColumn: 'company',
\r
138 // Add a listener to load the data only after the grid is rendered:
\r
140 render: function(){
\r
141 this.store.loadData(myData);
\r
150 bodyStyle: 'padding:10px;',
\r
151 html: 'Nothing to see here.'
\r
156 * ================ Absolute Layout Form =======================
\r
158 var absform = new Ext.form.FormPanel({
\r
159 baseCls: 'x-plain',
\r
161 url:'save-form.php',
\r
163 defaultType: 'textfield',
\r
174 anchor:'100%' // anchor width by %
\r
181 // The button is not a Field subclass, so it must be
\r
182 // wrapped in a panel for proper positioning to work
\r
188 text: 'Contacts...'
\r
194 anchor: '100%' // anchor width by %
\r
204 anchor: '100%' // anchor width by %
\r
210 anchor: '100% 100%' // anchor width and height
\r
214 var absoluteForm = {
\r
215 title: 'Absolute Layout Form',
\r
216 id: 'abs-form-panel',
\r
218 bodyStyle: 'padding:15px;',
\r
220 title: 'New Email',
\r
224 bodyStyle: 'padding:10px 5px 5px;',
\r
229 iconCls: 'icon-send'
\r
232 iconCls: 'icon-save'
\r
234 text: 'Check Spelling',
\r
235 iconCls: 'icon-spell'
\r
238 iconCls: 'icon-print'
\r
240 text: 'Attach a File',
\r
241 iconCls: 'icon-attach'
\r