]> git.proxmox.com Git - extjs.git/blame - extjs/build/examples/classic/grid/grid-plugins.js
add extjs 6.0.1 sources
[extjs.git] / extjs / build / examples / classic / grid / grid-plugins.js
CommitLineData
6527f429
DM
1Ext.Loader.setConfig({\r
2 enabled: true\r
3});\r
4\r
5Ext.require([\r
6 'Ext.grid.*',\r
7 'Ext.data.*',\r
8 'Ext.selection.CheckboxModel'\r
9]);\r
10\r
11Ext.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