initial import
[roojs1] / examples / grid / array-grid.js
1 /*
2  * Based on:
3  * Ext JS Library 1.1.1
4  * Copyright(c) 2006-2007, Ext JS, LLC.
5  *
6  * Originally Released Under LGPL - original licence link has changed is not relivant.
7  *
8  * Fork - LGPL
9  * <script type="text/javascript">
10  */\r
11
12 Roo.BLANK_IMAGE_URL  = "../../images/default/s.gif";
13  
14  \r
15 var Example = {\r
16     init : function(){\r
17         // some data yanked off the web\r
18         var myData = [\r
19                         ['3m Co',71.72,0.02,0.03,'9/1 12:00am'],\r
20             ['Alcoa Inc',29.01,0.42,1.47,'9/1 12:00am'],\r
21             ['Altria Group Inc',83.81,0.28,0.34,'9/1 12:00am'],\r
22             ['American Express Company',52.55,0.01,0.02,'9/1 12:00am'],\r
23             ['American International Group, Inc.',64.13,0.31,0.49,'9/1 12:00am'],\r
24             ['AT&T Inc.',31.61,-0.48,-1.54,'9/1 12:00am'],\r
25             ['Boeing Co.',75.43,0.53,0.71,'9/1 12:00am'],\r
26             ['Caterpillar Inc.',67.27,0.92,1.39,'9/1 12:00am'],\r
27             ['Citigroup, Inc.',49.37,0.02,0.04,'9/1 12:00am'],\r
28             ['E.I. du Pont de Nemours and Company',40.48,0.51,1.28,'9/1 12:00am'],\r
29             ['Exxon Mobil Corp',68.1,-0.43,-0.64,'9/1 12:00am'],\r
30             ['General Electric Company',34.14,-0.08,-0.23,'9/1 12:00am'],\r
31             ['General Motors Corporation',30.27,1.09,3.74,'9/1 12:00am'],\r
32             ['Hewlett-Packard Co.',36.53,-0.03,-0.08,'9/1 12:00am'],\r
33             ['Honeywell Intl Inc',38.77,0.05,0.13,'9/1 12:00am'],\r
34             ['Intel Corporation',19.88,0.31,1.58,'9/1 12:00am'],\r
35             ['International Business Machines',81.41,0.44,0.54,'9/1 12:00am'],\r
36             ['Johnson & Johnson',64.72,0.06,0.09,'9/1 12:00am'],\r
37             ['JP Morgan & Chase & Co',45.73,0.07,0.15,'9/1 12:00am'],\r
38             ['McDonald\'s Corporation',36.76,0.86,2.40,'9/1 12:00am'],\r
39             ['Merck & Co., Inc.',40.96,0.41,1.01,'9/1 12:00am'],\r
40             ['Microsoft Corporation',25.84,0.14,0.54,'9/1 12:00am'],\r
41             ['Pfizer Inc',27.96,0.4,1.45,'9/1 12:00am'],\r
42             ['The Coca-Cola Company',45.07,0.26,0.58,'9/1 12:00am'],\r
43             ['The Home Depot, Inc.',34.64,0.35,1.02,'9/1 12:00am'],\r
44             ['The Procter & Gamble Company',61.91,0.01,0.02,'9/1 12:00am'],\r
45             ['United Technologies Corporation',63.26,0.55,0.88,'9/1 12:00am'],\r
46             ['Verizon Communications',35.57,0.39,1.11,'9/1 12:00am'],\r
47             ['Wal-Mart Stores, Inc.',45.45,0.73,1.63,'9/1 12:00am'],\r
48             ['Walt Disney Company (The) (Holding Company)',29.89,0.24,0.81,'9/1 12:00am']\r
49                 ];\r
50 \r
51         var ds = new Roo.data.Store({\r
52                         proxy: new Roo.data.MemoryProxy(myData),\r
53                         reader: new Roo.data.ArrayReader({}, [\r
54                        {name: 'company'},\r
55                        {name: 'price', type: 'float'},\r
56                        {name: 'change', type: 'float'},\r
57                        {name: 'pctChange', type: 'float'},\r
58                        {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}\r
59                   ])\r
60         });\r
61         ds.load();\r
62 \r
63                 // example of custom renderer function\r
64         function italic(value){\r
65             return '<i>' + value + '</i>';\r
66         }\r
67 \r
68                 // example of custom renderer function\r
69         function change(val){\r
70             if(val > 0){\r
71                 return '<span style="color:green;">' + val + '</span>';\r
72             }else if(val < 0){\r
73                 return '<span style="color:red;">' + val + '</span>';\r
74             }\r
75             return val;\r
76         }\r
77                 // example of custom renderer function\r
78         function pctChange(val){\r
79                     if(val > 0){\r
80                         return '<span style="color:green;">' + val + '%</span>';\r
81                     }else if(val < 0){\r
82                         return '<span style="color:red;">' + val + '%</span>';\r
83                     }\r
84                     return val;\r
85                 }\r
86 \r
87                 // the DefaultColumnModel expects this blob to define columns. It can be extended to provide\r
88         // custom or reusable ColumnModels\r
89         var colModel = new Roo.grid.ColumnModel([\r
90                         {id:'company',header: "Company", width: 160, sortable: true, locked:false, dataIndex: 'company'},\r
91                         {header: "Price", width: 75, sortable: true, renderer: Roo.util.Format.usMoney, dataIndex: 'price'},\r
92                         {header: "Change", width: 75, sortable: true, renderer: change, dataIndex: 'change'},\r
93                         {header: "% Change", width: 75, sortable: true, renderer: pctChange, dataIndex: 'pctChange'},\r
94                         {header: "Last Updated", width: 85, sortable: true, renderer: Roo.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}\r
95                 ]);\r
96 \r
97 \r
98         // create the Grid\r
99         var grid = new Roo.grid.Grid('grid-example', {\r
100             ds: ds,\r
101             cm: colModel,\r
102             autoExpandColumn: 'company'\r
103         });\r
104         \r
105         var layout = Roo.BorderLayout.create({\r
106             center: {\r
107                 margins:{left:3,top:3,right:3,bottom:3},\r
108                 panels: [new Roo.GridPanel(grid)]\r
109             }\r
110         }, 'grid-panel');\r
111 \r
112         grid.render();\r
113         \r
114 \r
115         grid.getSelectionModel().selectFirstRow();\r
116     }\r
117 };\r
118 Roo.onReady(Example.init, Example);