PageRenderTime 78ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/ext-4.0.7/examples/grid/locking-grid.js

https://bitbucket.org/srogerf/javascript
JavaScript | 140 lines | 108 code | 7 blank | 25 comment | 6 complexity | 0563efcedc0d17779bafd69f672b8720 MD5 | raw file
  1. /*
  2. This file is part of Ext JS 4
  3. Copyright (c) 2011 Sencha Inc
  4. Contact: http://www.sencha.com/contact
  5. GNU General Public License Usage
  6. This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file. Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  7. If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
  8. */
  9. Ext.require([
  10. 'Ext.grid.*',
  11. 'Ext.data.*',
  12. 'Ext.util.*',
  13. 'Ext.state.*'
  14. ]);
  15. Ext.onReady(function() {
  16. Ext.QuickTips.init();
  17. // sample static data for the store
  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. ];
  49. /**
  50. * Custom function used for column renderer
  51. * @param {Object} val
  52. */
  53. function change(val) {
  54. if (val > 0) {
  55. return '<span style="color:green;">' + val + '</span>';
  56. } else if (val < 0) {
  57. return '<span style="color:red;">' + val + '</span>';
  58. }
  59. return val;
  60. }
  61. /**
  62. * Custom function used for column renderer
  63. * @param {Object} val
  64. */
  65. function pctChange(val) {
  66. if (val > 0) {
  67. return '<span style="color:green;">' + val + '%</span>';
  68. } else if (val < 0) {
  69. return '<span style="color:red;">' + val + '%</span>';
  70. }
  71. return val;
  72. }
  73. // create the data store
  74. var store = Ext.create('Ext.data.ArrayStore', {
  75. fields: [
  76. {name: 'company'},
  77. {name: 'price', type: 'float'},
  78. {name: 'change', type: 'float'},
  79. {name: 'pctChange', type: 'float'},
  80. {name: 'lastChange', type: 'date', dateFormat: 'n/j h:ia'}
  81. ],
  82. data: myData
  83. });
  84. // create the Grid
  85. var grid = Ext.create('Ext.grid.Panel', {
  86. store: store,
  87. columnLines: true,
  88. columns: [{
  89. text : 'Company Name',
  90. locked : true,
  91. width : 200,
  92. sortable : false,
  93. dataIndex: 'company'
  94. },{
  95. text : 'Price',
  96. width : 125,
  97. sortable : true,
  98. renderer : 'usMoney',
  99. dataIndex: 'price'
  100. },{
  101. text : 'Change',
  102. width : 125,
  103. sortable : true,
  104. renderer : change,
  105. dataIndex: 'change'
  106. },{
  107. text : '% Change',
  108. width : 125,
  109. sortable : true,
  110. renderer : pctChange,
  111. dataIndex: 'pctChange'
  112. },{
  113. text : 'Last Updated',
  114. width : 135,
  115. sortable : true,
  116. renderer : Ext.util.Format.dateRenderer('m/d/Y'),
  117. dataIndex: 'lastChange'
  118. }],
  119. height: 350,
  120. width: 600,
  121. title: 'Locking Grid Column',
  122. renderTo: 'grid-example',
  123. viewConfig: {
  124. stripeRows: true
  125. }
  126. });
  127. });