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