4 Ext.Loader.setPath('Ext.ux', '../ux');
10 'Ext.selection.CheckboxModel'
13 Ext.onReady(function(){
14 Ext.define('Company', {
15 extend: 'Ext.data.Model',
18 {name: 'price', type: 'float'},
19 {name: 'change', type: 'float'},
20 {name: 'pctChange', type: 'float'},
21 {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'},
26 // Array data for the grids
27 Ext.grid.dummyData = [
28 ['3m Co',71.72,0.02,0.03,'9/1 12:00am', 'Manufacturing'],
29 ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am', 'Manufacturing'],
30 ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am', 'Manufacturing'],
31 ['American Express Company',52.55,0.01,0.02,'9/1 12:00am', 'Finance'],
32 ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am', 'Services'],
33 ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am', 'Services'],
34 ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am', 'Manufacturing'],
35 ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am', 'Services'],
36 ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am', 'Finance'],
37 ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am', 'Manufacturing'],
38 ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am', 'Manufacturing'],
39 ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am', 'Manufacturing'],
40 ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am', 'Automotive'],
41 ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am', 'Computer'],
42 ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am', 'Manufacturing'],
43 ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am', 'Computer'],
44 ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am', 'Computer'],
45 ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am', 'Medical'],
46 ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am', 'Finance'],
47 ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am', 'Food'],
48 ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am', 'Medical'],
49 ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am', 'Computer'],
50 ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am', 'Services', 'Medical'],
51 ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am', 'Food'],
52 ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am', 'Retail'],
53 ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am', 'Manufacturing'],
54 ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am', 'Computer'],
55 ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am', 'Services'],
56 ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am', 'Retail'],
57 ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am', 'Services']
60 // add in some dummy descriptions
61 for(var i = 0; i < Ext.grid.dummyData.length; i++){
62 Ext.grid.dummyData[i].push('Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. ');
68 var getLocalStore = function() {
69 return Ext.create('Ext.data.ArrayStore', {
71 data: Ext.grid.dummyData
76 ////////////////////////////////////////////////////////////////////////////////////////
78 ////////////////////////////////////////////////////////////////////////////////////////
81 var grid1 = Ext.create('Ext.grid.Panel', {
82 store: getLocalStore(),
84 {text: "Company", flex: 1, dataIndex: 'company'},
85 {text: "Price", renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
86 {text: "Change", dataIndex: 'change'},
87 {text: "% Change", dataIndex: 'pctChange'},
88 {text: "Last Updated", renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
95 '<p><b>Company:</b> {company}</p><br>',
96 '<p><b>Summary:</b> {desc}</p>'
101 title: 'Expander Rows in a Collapsible Grid',
102 iconCls: 'icon-grid',
103 renderTo: Ext.getBody()
106 ////////////////////////////////////////////////////////////////////////////////////////
108 ////////////////////////////////////////////////////////////////////////////////////////
109 var sm = Ext.create('Ext.selection.CheckboxModel');
110 var grid2 = Ext.create('Ext.grid.Panel', {
111 store: getLocalStore(),
114 {text: "Company", width: 200, dataIndex: 'company'},
115 {text: "Price", renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
116 {text: "Change", dataIndex: 'change'},
117 {text: "% Change", dataIndex: 'pctChange'},
118 {text: "Last Updated", width: 135, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
124 title: 'Framed with Checkbox Selection and Horizontal Scrolling',
125 iconCls: 'icon-grid',
126 renderTo: Ext.getBody()
129 ////////////////////////////////////////////////////////////////////////////////////////
131 ////////////////////////////////////////////////////////////////////////////////////////
132 var grid3 = Ext.create('Ext.grid.Panel', {
133 store: getLocalStore(),
135 Ext.create('Ext.grid.RowNumberer'),
136 {text: "Company", flex: 1, sortable: true, dataIndex: 'company'},
137 {text: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
138 {text: "Change", width: 120, sortable: true, dataIndex: 'change'},
139 {text: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'},
140 {text: "Last Updated", width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
145 title:'Grid with Numbered Rows',
147 renderTo: Ext.getBody()
150 ////////////////////////////////////////////////////////////////////////////////////////
152 ////////////////////////////////////////////////////////////////////////////////////////
153 var selModel = Ext.create('Ext.selection.CheckboxModel', {
155 selectionchange: function(sm, selections) {
156 grid4.down('#removeButton').setDisabled(selections.length == 0);
161 var grid4 = Ext.create('Ext.grid.Panel', {
163 store: getLocalStore(),
165 {text: "Company", flex: 1, sortable: true, dataIndex: 'company'},
166 {text: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},
167 {text: "Change", width: 120, sortable: true, dataIndex: 'change'},
168 {text: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'},
169 {text: "Last Updated", width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
192 text:'Add Something',
193 tooltip:'Add a new row',
197 tooltip:'Set options',
200 itemId: 'removeButton',
201 text:'Remove Something',
202 tooltip:'Remove the selected item',
211 title: 'Support for standard Panel features such as framing, buttons and toolbars',
212 iconCls: 'icon-grid',
213 renderTo: Ext.getBody()