]>
Commit | Line | Data |
---|---|---|
6527f429 DM |
1 | Ext.Loader.setConfig({\r |
2 | enabled: true\r | |
3 | });\r | |
4 | \r | |
5 | Ext.require([\r | |
6 | 'Ext.grid.*',\r | |
7 | 'Ext.data.*',\r | |
8 | 'Ext.selection.CheckboxModel'\r | |
9 | ]);\r | |
10 | \r | |
11 | Ext.onReady(function(){\r | |
12 | Ext.define('Company', {\r | |
13 | extend: 'Ext.data.Model',\r | |
14 | fields: [\r | |
15 | {name: 'company'},\r | |
16 | {name: 'price', type: 'float'},\r | |
17 | {name: 'change', type: 'float'},\r | |
18 | {name: 'pctChange', type: 'float'},\r | |
19 | {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'},\r | |
20 | {name: 'industry'},\r | |
21 | {name: 'desc'}\r | |
22 | ]\r | |
23 | });\r | |
24 | // Array data for the grids\r | |
25 | Ext.grid.dummyData = [\r | |
26 | ['3m Co',71.72,0.02,0.03,'9/1 12:00am', 'Manufacturing'],\r | |
27 | ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am', 'Manufacturing'],\r | |
28 | ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am', 'Manufacturing'],\r | |
29 | ['American Express Company',52.55,0.01,0.02,'9/1 12:00am', 'Finance'],\r | |
30 | ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am', 'Services'],\r | |
31 | ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am', 'Services'],\r | |
32 | ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am', 'Manufacturing'],\r | |
33 | ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am', 'Services'],\r | |
34 | ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am', 'Finance'],\r | |
35 | ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am', 'Manufacturing'],\r | |
36 | ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am', 'Manufacturing'],\r | |
37 | ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am', 'Manufacturing'],\r | |
38 | ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am', 'Automotive'],\r | |
39 | ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am', 'Computer'],\r | |
40 | ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am', 'Manufacturing'],\r | |
41 | ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am', 'Computer'],\r | |
42 | ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am', 'Computer'],\r | |
43 | ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am', 'Medical'],\r | |
44 | ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am', 'Finance'],\r | |
45 | ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am', 'Food'],\r | |
46 | ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am', 'Medical'],\r | |
47 | ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am', 'Computer'],\r | |
48 | ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am', 'Medical'],\r | |
49 | ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am', 'Food'],\r | |
50 | ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am', 'Retail'],\r | |
51 | ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am', 'Manufacturing'],\r | |
52 | ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am', 'Computer'],\r | |
53 | ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am', 'Services'],\r | |
54 | ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am', 'Retail'],\r | |
55 | ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am', 'Services']\r | |
56 | ];\r | |
57 | \r | |
58 | // add in some dummy descriptions\r | |
59 | for(var i = 0; i < Ext.grid.dummyData.length; i++){\r | |
60 | 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. ');\r | |
61 | }\r | |
62 | \r | |
63 | \r | |
64 | //Ext.QuickTips.init();\r | |
65 | \r | |
66 | var getLocalStore = function() {\r | |
67 | return Ext.create('Ext.data.ArrayStore', {\r | |
68 | model: 'Company',\r | |
69 | data: Ext.grid.dummyData\r | |
70 | });\r | |
71 | };\r | |
72 | \r | |
73 | \r | |
74 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
75 | // Grid 1\r | |
76 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
77 | // row expander\r | |
78 | \r | |
79 | var grid1 = Ext.create('Ext.grid.Panel', {\r | |
80 | store: getLocalStore(),\r | |
81 | columns: [\r | |
82 | {text: "Company", flex: 1, dataIndex: 'company'},\r | |
83 | {text: "Price", renderer: Ext.util.Format.usMoney, dataIndex: 'price'},\r | |
84 | {text: "Change", dataIndex: 'change'},\r | |
85 | {text: "% Change", dataIndex: 'pctChange'},\r | |
86 | {text: "Last Updated", renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}\r | |
87 | ],\r | |
88 | columnLines: true,\r | |
89 | enableLocking: true,\r | |
90 | width: 600,\r | |
91 | height: 300,\r | |
92 | plugins: [{\r | |
93 | ptype: 'rowexpander',\r | |
94 | rowBodyTpl : new Ext.XTemplate(\r | |
95 | '<p><b>Company:</b> {company}</p>',\r | |
96 | '<p><b>Change:</b> {change:this.formatChange}</p><br>',\r | |
97 | '<p><b>Summary:</b> {desc}</p>',\r | |
98 | {\r | |
99 | formatChange: function(v){\r | |
100 | var color = v >= 0 ? 'green' : 'red';\r | |
101 | return '<span style="color: ' + color + ';">' + Ext.util.Format.usMoney(v) + '</span>';\r | |
102 | }\r | |
103 | })\r | |
104 | }],\r | |
105 | collapsible: true,\r | |
106 | animCollapse: false,\r | |
107 | title: 'Expander Rows in a Collapsible Grid with lockable columns',\r | |
108 | iconCls: 'icon-grid',\r | |
109 | margin: '0 0 20 0',\r | |
110 | renderTo: Ext.getBody()\r | |
111 | });\r | |
112 | \r | |
113 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
114 | // Grid 2\r | |
115 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
116 | var grid2 = Ext.create('Ext.grid.Panel', {\r | |
117 | id: 'grid2',\r | |
118 | store: getLocalStore(),\r | |
119 | selType: 'checkboxmodel',\r | |
120 | columns: [\r | |
121 | {text: "Company", width: 200, dataIndex: 'company'},\r | |
122 | {text: "Price", renderer: Ext.util.Format.usMoney, dataIndex: 'price'},\r | |
123 | {text: "Change", dataIndex: 'change'},\r | |
124 | {text: "% Change", dataIndex: 'pctChange'},\r | |
125 | {text: "Last Updated", width: 135, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}\r | |
126 | ],\r | |
127 | columnLines: true,\r | |
128 | width: 600,\r | |
129 | height: 300,\r | |
130 | frame: true,\r | |
131 | title: 'Framed with Checkbox Selection and Horizontal Scrolling',\r | |
132 | iconCls: 'icon-grid',\r | |
133 | margin: '0 0 20 0',\r | |
134 | renderTo: Ext.getBody()\r | |
135 | });\r | |
136 | \r | |
137 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
138 | // Grid 3\r | |
139 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
140 | var grid3 = Ext.create('Ext.grid.Panel', {\r | |
141 | store: getLocalStore(),\r | |
142 | columns: [\r | |
143 | Ext.create('Ext.grid.RowNumberer'),\r | |
144 | {text: "Company", flex: 1, sortable: true, dataIndex: 'company'},\r | |
145 | {text: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},\r | |
146 | {text: "Change", width: 120, sortable: true, dataIndex: 'change'},\r | |
147 | {text: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'},\r | |
148 | {text: "Last Updated", width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}\r | |
149 | ],\r | |
150 | columnLines: true,\r | |
151 | width:600,\r | |
152 | height:300,\r | |
153 | title:'Grid with Numbered Rows',\r | |
154 | iconCls:'icon-grid',\r | |
155 | margin: '0 0 20 0',\r | |
156 | renderTo: Ext.getBody()\r | |
157 | });\r | |
158 | \r | |
159 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
160 | // Grid 4\r | |
161 | ////////////////////////////////////////////////////////////////////////////////////////\r | |
162 | var selModel = Ext.create('Ext.selection.CheckboxModel', {\r | |
163 | listeners: {\r | |
164 | selectionchange: function(sm, selections) {\r | |
165 | grid4.down('#removeButton').setDisabled(selections.length === 0);\r | |
166 | }\r | |
167 | }\r | |
168 | });\r | |
169 | \r | |
170 | var grid4 = Ext.create('Ext.grid.Panel', {\r | |
171 | id:'button-grid',\r | |
172 | store: getLocalStore(),\r | |
173 | columns: [\r | |
174 | {text: "Company", flex: 1, sortable: true, dataIndex: 'company'},\r | |
175 | {text: "Price", width: 120, sortable: true, renderer: Ext.util.Format.usMoney, dataIndex: 'price'},\r | |
176 | {text: "Change", width: 120, sortable: true, dataIndex: 'change'},\r | |
177 | {text: "% Change", width: 120, sortable: true, dataIndex: 'pctChange'},\r | |
178 | {text: "Last Updated", width: 120, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}\r | |
179 | ],\r | |
180 | columnLines: true,\r | |
181 | selModel: selModel,\r | |
182 | \r | |
183 | // inline buttons\r | |
184 | dockedItems: [{\r | |
185 | xtype: 'toolbar',\r | |
186 | dock: 'bottom',\r | |
187 | ui: 'footer',\r | |
188 | layout: {\r | |
189 | pack: 'center'\r | |
190 | },\r | |
191 | items: [{\r | |
192 | minWidth: 80,\r | |
193 | text: 'Save'\r | |
194 | },{\r | |
195 | minWidth: 80,\r | |
196 | text: 'Cancel'\r | |
197 | }]\r | |
198 | }, {\r | |
199 | xtype: 'toolbar',\r | |
200 | items: [{\r | |
201 | text:'Add Something',\r | |
202 | tooltip:'Add a new row',\r | |
203 | iconCls:'add'\r | |
204 | }, '-', {\r | |
205 | text:'Options',\r | |
206 | tooltip:'Set options',\r | |
207 | iconCls:'option'\r | |
208 | },'-',{\r | |
209 | itemId: 'removeButton',\r | |
210 | text:'Remove Something',\r | |
211 | tooltip:'Remove the selected item',\r | |
212 | iconCls:'remove',\r | |
213 | disabled: true\r | |
214 | }]\r | |
215 | }],\r | |
216 | \r | |
217 | width: 600,\r | |
218 | height: 300,\r | |
219 | frame: true,\r | |
220 | title: 'Support for standard Panel features such as framing, buttons and toolbars',\r | |
221 | iconCls: 'icon-grid',\r | |
222 | renderTo: Ext.getBody()\r | |
223 | });\r | |
224 | });\r |