3 This file is part of Ext JS 4
5 Copyright (c) 2011 Sencha Inc
7 Contact: http://www.sencha.com/contact
9 GNU General Public License Usage
10 This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
12 If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
19 'Ext.layout.container.Column'
23 Ext.onReady(function(){
27 var bd = Ext.getBody();
29 // sample static data for the store
31 ['3m Co', 71.72, 0.02, 0.03, '9/1 12:00am'],
32 ['Alcoa Inc', 29.01, 0.42, 1.47, '9/1 12:00am'],
33 ['Altria Group Inc', 83.81, 0.28, 0.34, '9/1 12:00am'],
34 ['American Express Company', 52.55, 0.01, 0.02, '9/1 12:00am'],
35 ['American International Group, Inc.', 64.13, 0.31, 0.49, '9/1 12:00am'],
36 ['AT&T Inc.', 31.61, -0.48, -1.54, '9/1 12:00am'],
37 ['Boeing Co.', 75.43, 0.53, 0.71, '9/1 12:00am'],
38 ['Caterpillar Inc.', 67.27, 0.92, 1.39, '9/1 12:00am'],
39 ['Citigroup, Inc.', 49.37, 0.02, 0.04, '9/1 12:00am'],
40 ['E.I. du Pont de Nemours and Company', 40.48, 0.51, 1.28, '9/1 12:00am'],
41 ['Exxon Mobil Corp', 68.1, -0.43, -0.64, '9/1 12:00am'],
42 ['General Electric Company', 34.14, -0.08, -0.23, '9/1 12:00am'],
43 ['General Motors Corporation', 30.27, 1.09, 3.74, '9/1 12:00am'],
44 ['Hewlett-Packard Co.', 36.53, -0.03, -0.08, '9/1 12:00am'],
45 ['Honeywell Intl Inc', 38.77, 0.05, 0.13, '9/1 12:00am'],
46 ['Intel Corporation', 19.88, 0.31, 1.58, '9/1 12:00am'],
47 ['International Business Machines', 81.41, 0.44, 0.54, '9/1 12:00am'],
48 ['Johnson & Johnson', 64.72, 0.06, 0.09, '9/1 12:00am'],
49 ['JP Morgan & Chase & Co', 45.73, 0.07, 0.15, '9/1 12:00am'],
50 ['McDonald\'s Corporation', 36.76, 0.86, 2.40, '9/1 12:00am'],
51 ['Merck & Co., Inc.', 40.96, 0.41, 1.01, '9/1 12:00am'],
52 ['Microsoft Corporation', 25.84, 0.14, 0.54, '9/1 12:00am'],
53 ['Pfizer Inc', 27.96, 0.4, 1.45, '9/1 12:00am'],
54 ['The Coca-Cola Company', 45.07, 0.26, 0.58, '9/1 12:00am'],
55 ['The Home Depot, Inc.', 34.64, 0.35, 1.02, '9/1 12:00am'],
56 ['The Procter & Gamble Company', 61.91, 0.01, 0.02, '9/1 12:00am'],
57 ['United Technologies Corporation', 63.26, 0.55, 0.88, '9/1 12:00am'],
58 ['Verizon Communications', 35.57, 0.39, 1.11, '9/1 12:00am'],
59 ['Wal-Mart Stores, Inc.', 45.45, 0.73, 1.63, '9/1 12:00am']
62 var ds = Ext.create('Ext.data.ArrayStore', {
65 {name: 'price', type: 'float'},
66 {name: 'change', type: 'float'},
67 {name: 'pctChange', type: 'float'},
68 {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'},
69 // Rating dependent upon performance 0 = best, 2 = worst
70 {name: 'rating', type: 'int', convert: function(value, record) {
71 var pct = record.get('pctChange');
72 if (pct < 0) return 2;
73 if (pct < 1) return 1;
81 // example of custom renderer function
84 return '<span style="color:green;">' + val + '</span>';
86 return '<span style="color:red;">' + val + '</span>';
90 // example of custom renderer function
91 function pctChange(val){
93 return '<span style="color:green;">' + val + '%</span>';
95 return '<span style="color:red;">' + val + '%</span>';
100 // render rating as "A", "B" or "C" depending upon numeric value.
102 if (v == 0) return "A";
103 if (v == 1) return "B";
104 if (v == 2) return "C";
108 bd.createChild({tag: 'h2', html: 'Using a Grid with a Form'});
111 * Here is where we create the Form
113 var gridForm = Ext.create('Ext.form.Panel', {
116 title: 'Company data',
119 layout: 'column', // Specifies that the items will now be arranged in columns
131 title:'Company Data',
158 renderer : pctChange,
159 dataIndex: 'pctChange'
162 text : 'Last Updated',
165 renderer : Ext.util.Format.dateRenderer('m/d/Y'),
166 dataIndex: 'lastChange'
178 selectionchange: function(model, records) {
180 this.up('form').getForm().loadRecord(records[0]);
188 title:'Company details',
193 defaultType: 'textfield',
201 fieldLabel: '% Change',
205 fieldLabel: 'Last Updated',
209 fieldLabel: 'Rating',
212 name: 'rating' //Each radio has the same name so the browser will make sure only one is checked at once
230 gridForm.child('gridpanel').getSelectionModel().select(0);