HeaderContainer.html 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>The source code</title>
  6. <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  7. <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  8. <style type="text/css">
  9. .highlight { display: block; background-color: #ddd; }
  10. </style>
  11. <script type="text/javascript">
  12. function highlight() {
  13. document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
  14. }
  15. </script>
  16. </head>
  17. <body onload="prettyPrint(); highlight();">
  18. <pre class="prettyprint lang-js"><span id='Ext-grid-property-HeaderContainer'>/**
  19. </span> * A custom HeaderContainer for the {@link Ext.grid.property.Grid}.
  20. * Generally it should not need to be used directly.
  21. */
  22. Ext.define('Ext.grid.property.HeaderContainer', {
  23. extend: 'Ext.grid.header.Container',
  24. alternateClassName: 'Ext.grid.PropertyColumnModel',
  25. nameWidth: 115,
  26. // private - strings used for locale support
  27. //&lt;locale&gt;
  28. nameText : 'Name',
  29. //&lt;/locale&gt;
  30. //&lt;locale&gt;
  31. valueText : 'Value',
  32. //&lt;/locale&gt;
  33. //&lt;locale&gt;
  34. dateFormat : 'm/j/Y',
  35. //&lt;/locale&gt;
  36. //&lt;locale&gt;
  37. trueText: 'true',
  38. //&lt;/locale&gt;
  39. //&lt;locale&gt;
  40. falseText: 'false',
  41. //&lt;/locale&gt;
  42. // private
  43. nameColumnCls: Ext.baseCSSPrefix + 'grid-property-name',
  44. <span id='Ext-grid-property-HeaderContainer-method-constructor'> /**
  45. </span> * Creates new HeaderContainer.
  46. * @param {Ext.grid.property.Grid} grid The grid this store will be bound to
  47. * @param {Object} source The source data config object
  48. */
  49. constructor : function(grid, store) {
  50. var me = this;
  51. me.grid = grid;
  52. me.store = store;
  53. me.callParent([{
  54. items: [{
  55. header: me.nameText,
  56. width: grid.nameColumnWidth || me.nameWidth,
  57. sortable: grid.sortableColumns,
  58. dataIndex: grid.nameField,
  59. renderer: Ext.Function.bind(me.renderProp, me),
  60. itemId: grid.nameField,
  61. menuDisabled :true,
  62. tdCls: me.nameColumnCls
  63. }, {
  64. header: me.valueText,
  65. renderer: Ext.Function.bind(me.renderCell, me),
  66. getEditor: Ext.Function.bind(me.getCellEditor, me),
  67. sortable: grid.sortableColumns,
  68. flex: 1,
  69. fixed: true,
  70. dataIndex: grid.valueField,
  71. itemId: grid.valueField,
  72. menuDisabled: true
  73. }]
  74. }]);
  75. },
  76. getCellEditor: function(record){
  77. return this.grid.getCellEditor(record, this);
  78. },
  79. // private
  80. // Render a property name cell
  81. renderProp : function(v) {
  82. return this.getPropertyName(v);
  83. },
  84. // private
  85. // Render a property value cell
  86. renderCell : function(val, meta, rec) {
  87. var me = this,
  88. renderer = me.grid.customRenderers[rec.get(me.grid.nameField)],
  89. result = val;
  90. if (renderer) {
  91. return renderer.apply(me, arguments);
  92. }
  93. if (Ext.isDate(val)) {
  94. result = me.renderDate(val);
  95. } else if (Ext.isBoolean(val)) {
  96. result = me.renderBool(val);
  97. }
  98. return Ext.util.Format.htmlEncode(result);
  99. },
  100. // private
  101. renderDate : Ext.util.Format.date,
  102. // private
  103. renderBool : function(bVal) {
  104. return this[bVal ? 'trueText' : 'falseText'];
  105. },
  106. // private
  107. // Renders custom property names instead of raw names if defined in the Grid
  108. getPropertyName : function(name) {
  109. var pn = this.grid.propertyNames;
  110. return pn &amp;&amp; pn[name] ? pn[name] : name;
  111. }
  112. });</pre>
  113. </body>
  114. </html>