1 <html><head><title>Roo/grid/ColumnModel.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
4 * Copyright(c) 2006-2007, Ext JS, LLC.
6 * Originally Released Under LGPL - original licence link has changed is not relivant.
9 * <script type="text/javascript">
14 * @class Roo.grid.ColumnModel
15 * @extends Roo.util.Observable
16 * This is the default implementation of a ColumnModel used by the Grid. It defines
17 * the columns in the grid.
18 * <br>Usage:<br>
19 <pre><code>
20 var colModel = new Roo.grid.ColumnModel([
21 {header: "Ticker", width: 60, sortable: true, locked: true},
22 {header: "Company Name", width: 150, sortable: true},
23 {header: "Market Cap.", width: 100, sortable: true},
24 {header: "$ Sales", width: 100, sortable: true, renderer: money},
25 {header: "Employees", width: 100, sortable: true, resizable: false}
27 </code></pre>
30 * The config options listed for this class are options which may appear in each
31 * individual column definition.
32 * <br/>RooJS Fix - column id's are not sequential but use Roo.id() - fixes bugs with layouts.
34 * @param {Object} config An Array of column config objects. See this class's
35 * config objects for details.
37 </span><span class="jsdoc-var">Roo.grid.ColumnModel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
38 </span><span class="jsdoc-comment">/**
39 * The config passed into the constructor
41 </span><span class="jsdoc-var">this.config </span><span class="jsdoc-syntax">= []; </span><span class="jsdoc-comment">//config;
42 </span><span class="jsdoc-var">this.lookup </span><span class="jsdoc-syntax">= {};
44 </span><span class="jsdoc-comment">// if no id, create one
45 // if the column does not have a dataIndex mapping,
46 // map it to the order it is in the config
47 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
48 </span><span class="jsdoc-var">this.addColumn</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
52 </span><span class="jsdoc-comment">/**
53 * The width of columns which have no width specified (defaults to 100)
56 </span><span class="jsdoc-var">this.defaultWidth </span><span class="jsdoc-syntax">= 100;
58 </span><span class="jsdoc-comment">/**
59 * Default sortable of columns which have no sortable specified (defaults to false)
62 </span><span class="jsdoc-var">this.defaultSortable </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
64 </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
65 </span><span class="jsdoc-comment">/**
67 * Fires when the width of a column changes.
68 * @param {ColumnModel} this
69 * @param {Number} columnIndex The column index
70 * @param {Number} newWidth The new width
72 </span><span class="jsdoc-string">"widthchange"</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
73 </span><span class="jsdoc-comment">/**
75 * Fires when the text of a header changes.
76 * @param {ColumnModel} this
77 * @param {Number} columnIndex The column index
78 * @param {Number} newText The new header text
80 </span><span class="jsdoc-string">"headerchange"</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
81 </span><span class="jsdoc-comment">/**
83 * Fires when a column is hidden or "unhidden".
84 * @param {ColumnModel} this
85 * @param {Number} columnIndex The column index
86 * @param {Boolean} hidden true if hidden, false otherwise
88 </span><span class="jsdoc-string">"hiddenchange"</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
89 </span><span class="jsdoc-comment">/**
91 * Fires when a column is moved.
92 * @param {ColumnModel} this
93 * @param {Number} oldIndex
94 * @param {Number} newIndex
96 </span><span class="jsdoc-string">"columnmoved" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
97 </span><span class="jsdoc-comment">/**
98 * @event columlockchange
99 * Fires when a column's locked state is changed
100 * @param {ColumnModel} this
101 * @param {Number} colIndex
102 * @param {Boolean} locked true if locked
104 </span><span class="jsdoc-string">"columnlockchange" </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
105 </span><span class="jsdoc-syntax">});
106 </span><span class="jsdoc-var">Roo.grid.ColumnModel.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
108 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.grid.ColumnModel</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.util.Observable</span><span class="jsdoc-syntax">, {
109 </span><span class="jsdoc-comment">/**
110 * @cfg {String} header The header text to display in the Grid view.
113 * @cfg {String} xsHeader Header at Bootsrap Extra Small width (default for all)
116 * @cfg {String} smHeader Header at Bootsrap Small width
119 * @cfg {String} mdHeader Header at Bootsrap Medium width
122 * @cfg {String} lgHeader Header at Bootsrap Large width
125 * @cfg {String} xlHeader Header at Bootsrap extra Large width
128 * @cfg {String} dataIndex (Optional) The name of the field in the grid's {@link Roo.data.Store}'s
129 * {@link Roo.data.Record} definition from which to draw the column's value. If not
130 * specified, the column's index is used as an index into the Record's data Array.
133 * @cfg {Number} width (Optional) The initial width in pixels of the column. Using this
134 * instead of {@link Roo.grid.Grid#autoSizeColumns} is more efficient.
137 * @cfg {Boolean} sortable (Optional) True if sorting is to be allowed on this column.
138 * Defaults to the value of the {@link #defaultSortable} property.
139 * Whether local/remote sorting is used is specified in {@link Roo.data.Store#remoteSort}.
142 * @cfg {Boolean} locked (Optional) True to lock the column in place while scrolling the Grid. Defaults to false.
145 * @cfg {Boolean} fixed (Optional) True if the column width cannot be changed. Defaults to false.
148 * @cfg {Boolean} resizable (Optional) False to disable column resizing. Defaults to true.
151 * @cfg {Boolean} hidden (Optional) True to hide the column. Defaults to false.
154 * @cfg {Function} renderer (Optional) A function used to generate HTML markup for a cell
155 * given the cell's data value. See {@link #setRenderer}. If not specified, the
156 * default renderer returns the escaped data value. If an object is returned (bootstrap only)
157 * then it is treated as a Roo Component object instance, and it is rendered after the initial row is rendered
160 * @cfg {Roo.grid.GridEditor} editor (Optional) For grid editors - returns the grid editor
163 * @cfg {String} align (Optional) Set the CSS text-align property of the column. Defaults to undefined.
166 * @cfg {String} valign (Optional) Set the CSS vertical-align property of the column (eg. middle, top, bottom etc). Defaults to undefined.
169 * @cfg {String} cursor (Optional)
172 * @cfg {String} tooltip (Optional)
175 * @cfg {Number} xs (Optional) can be '0' for hidden at this size (number less than 12)
178 * @cfg {Number} sm (Optional) can be '0' for hidden at this size (number less than 12)
181 * @cfg {Number} md (Optional) can be '0' for hidden at this size (number less than 12)
184 * @cfg {Number} lg (Optional) can be '0' for hidden at this size (number less than 12)
187 * @cfg {Number} xl (Optional) can be '0' for hidden at this size (number less than 12)
190 * Returns the id of the column at the specified index.
191 * @param {Number} index The column index
192 * @return {String} the id
194 </span><span class="jsdoc-var">getColumnId </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
195 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id</span><span class="jsdoc-syntax">;
198 </span><span class="jsdoc-comment">/**
199 * Returns the column for a specified id.
200 * @param {String} id The column id
201 * @return {Object} the column
203 </span><span class="jsdoc-var">getColumnById </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
204 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.lookup</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">];
208 </span><span class="jsdoc-comment">/**
209 * Returns the column Object for a specified dataIndex.
210 * @param {String} dataIndex The column dataIndex
211 * @return {Object|Boolean} the column or false if not found
213 </span><span class="jsdoc-var">getColumnByDataIndex</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">){
214 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.findColumnIndex</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">);
215 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">> -1 ? </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">] : </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
218 </span><span class="jsdoc-comment">/**
219 * Returns the index for a specified column id.
220 * @param {String} id The column id
221 * @return {Number} the index, or -1 if not found
223 </span><span class="jsdoc-var">getIndexById </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
224 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
225 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">){
226 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
229 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">-1;
232 </span><span class="jsdoc-comment">/**
233 * Returns the index for a specified column dataIndex.
234 * @param {String} dataIndex The column dataIndex
235 * @return {Number} the index, or -1 if not found
238 </span><span class="jsdoc-var">findColumnIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">){
239 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
240 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dataIndex </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">){
241 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
244 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">-1;
248 </span><span class="jsdoc-var">moveColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oldIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">){
249 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">oldIndex</span><span class="jsdoc-syntax">];
250 </span><span class="jsdoc-var">this.config.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">oldIndex</span><span class="jsdoc-syntax">, 1);
251 </span><span class="jsdoc-var">this.config.splice</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">, 0, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">);
252 </span><span class="jsdoc-var">this.dataMap </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
253 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"columnmoved"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">oldIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">newIndex</span><span class="jsdoc-syntax">);
256 </span><span class="jsdoc-var">isLocked </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
257 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.locked </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
260 </span><span class="jsdoc-var">setLocked </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
261 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">){
262 </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
264 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.locked </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
265 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
266 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"columnlockchange"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
270 </span><span class="jsdoc-var">getTotalLockedWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
271 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">totalWidth </span><span class="jsdoc-syntax">= 0;
272 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
273 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) && !</span><span class="jsdoc-var">this.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
274 </span><span class="jsdoc-var">this.totalWidth </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
277 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">totalWidth</span><span class="jsdoc-syntax">;
280 </span><span class="jsdoc-var">getLockedCount </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
281 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
282 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isLocked</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
283 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
287 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">;
290 </span><span class="jsdoc-comment">/**
291 * Returns the number of columns.
294 </span><span class="jsdoc-var">getColumnCount </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">visibleOnly</span><span class="jsdoc-syntax">){
295 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">visibleOnly </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
296 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= 0;
297 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
298 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
299 </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">++;
302 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
304 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">;
307 </span><span class="jsdoc-comment">/**
308 * Returns the column configs that return true by the passed function that is called with (columnConfig, index)
309 * @param {Function} fn
310 * @param {Object} scope (optional)
311 * @return {Array} result
313 </span><span class="jsdoc-var">getColumnsBy </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">){
314 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">r </span><span class="jsdoc-syntax">= [];
315 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
316 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">c </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">];
317 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">fn.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">scope</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">) === </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">){
318 </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">r.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
321 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">r</span><span class="jsdoc-syntax">;
324 </span><span class="jsdoc-comment">/**
325 * Returns true if the specified column is sortable.
326 * @param {Number} col The column index
329 </span><span class="jsdoc-var">isSortable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
330 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.sortable </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"undefined"</span><span class="jsdoc-syntax">){
331 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.defaultSortable</span><span class="jsdoc-syntax">;
333 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.sortable</span><span class="jsdoc-syntax">;
336 </span><span class="jsdoc-comment">/**
337 * Returns the rendering (formatting) function defined for the column.
338 * @param {Number} col The column index.
339 * @return {Function} The function used to render the cell. See {@link #setRenderer}.
341 </span><span class="jsdoc-var">getRenderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
342 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.renderer</span><span class="jsdoc-syntax">){
343 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">Roo.grid.ColumnModel.defaultRenderer</span><span class="jsdoc-syntax">;
345 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.renderer</span><span class="jsdoc-syntax">;
348 </span><span class="jsdoc-comment">/**
349 * Sets the rendering (formatting) function for a column.
350 * @param {Number} col The column index
351 * @param {Function} fn The function to use to process the cell's raw data
352 * to return HTML markup for the grid view. The render function is called with
353 * the following parameters:<ul>
354 * <li>Data value.</li>
355 * <li>Cell metadata. An object in which you may set the following attributes:<ul>
356 * <li>css A CSS style string to apply to the table cell.</li>
357 * <li>attr An HTML attribute definition string to apply to the data container element <i>within</i> the table cell.</li></ul>
358 * <li>The {@link Roo.data.Record} from which the data was extracted.</li>
359 * <li>Row index</li>
360 * <li>Column index</li>
361 * <li>The {@link Roo.data.Store} object from which the Record was extracted</li></ul>
363 </span><span class="jsdoc-var">setRenderer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">){
364 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">;
367 </span><span class="jsdoc-comment">/**
368 * Returns the width for the specified column.
369 * @param {Number} col The column index
370 * @param (optional) {String} gridSize bootstrap width size.
373 </span><span class="jsdoc-var">getColumnWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">gridSize</span><span class="jsdoc-syntax">)
375 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">];
377 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">gridSize</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
378 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg.width </span><span class="jsdoc-syntax">* 1 || </span><span class="jsdoc-var">this.defaultWidth</span><span class="jsdoc-syntax">;
380 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">gridSize </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-comment">// if we set it..
381 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg.width </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
383 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sizes </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">'xl'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'lg'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'md'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'sm'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'xs'</span><span class="jsdoc-syntax">];
385 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">sizes.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">gridSize</span><span class="jsdoc-syntax">); </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">sizes.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
386 </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">[ </span><span class="jsdoc-var">sizes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] ] ) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
387 </span><span class="jsdoc-keyword">continue</span><span class="jsdoc-syntax">;
389 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">[ </span><span class="jsdoc-var">sizes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] ];
391 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">1;
395 </span><span class="jsdoc-comment">/**
396 * Sets the width for a column.
397 * @param {Number} col The column index
398 * @param {Number} width The new width
400 </span><span class="jsdoc-var">setColumnWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
401 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.width </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">;
402 </span><span class="jsdoc-var">this.totalWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
403 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">suppressEvent</span><span class="jsdoc-syntax">){
404 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"widthchange"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">width</span><span class="jsdoc-syntax">);
408 </span><span class="jsdoc-comment">/**
409 * Returns the total width of all columns.
410 * @param {Boolean} includeHidden True to include hidden column widths
413 </span><span class="jsdoc-var">getTotalWidth </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">includeHidden</span><span class="jsdoc-syntax">){
414 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.totalWidth</span><span class="jsdoc-syntax">){
415 </span><span class="jsdoc-var">this.totalWidth </span><span class="jsdoc-syntax">= 0;
416 </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
417 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">includeHidden </span><span class="jsdoc-syntax">|| !</span><span class="jsdoc-var">this.isHidden</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">)){
418 </span><span class="jsdoc-var">this.totalWidth </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-var">this.getColumnWidth</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">);
422 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.totalWidth</span><span class="jsdoc-syntax">;
425 </span><span class="jsdoc-comment">/**
426 * Returns the header for the specified column.
427 * @param {Number} col The column index
430 </span><span class="jsdoc-var">getColumnHeader </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
431 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.header</span><span class="jsdoc-syntax">;
434 </span><span class="jsdoc-comment">/**
435 * Sets the header for a column.
436 * @param {Number} col The column index
437 * @param {String} header The new header
439 </span><span class="jsdoc-var">setColumnHeader </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">){
440 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.header </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">;
441 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"headerchange"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">header</span><span class="jsdoc-syntax">);
444 </span><span class="jsdoc-comment">/**
445 * Returns the tooltip for the specified column.
446 * @param {Number} col The column index
449 </span><span class="jsdoc-var">getColumnTooltip </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
450 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tooltip</span><span class="jsdoc-syntax">;
452 </span><span class="jsdoc-comment">/**
453 * Sets the tooltip for a column.
454 * @param {Number} col The column index
455 * @param {String} tooltip The new tooltip
457 </span><span class="jsdoc-var">setColumnTooltip </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tooltip</span><span class="jsdoc-syntax">){
458 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.tooltip </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tooltip</span><span class="jsdoc-syntax">;
461 </span><span class="jsdoc-comment">/**
462 * Returns the dataIndex for the specified column.
463 * @param {Number} col The column index
466 </span><span class="jsdoc-var">getDataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">){
467 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dataIndex</span><span class="jsdoc-syntax">;
470 </span><span class="jsdoc-comment">/**
471 * Sets the dataIndex for a column.
472 * @param {Number} col The column index
473 * @param {Number} dataIndex The new dataIndex
475 </span><span class="jsdoc-var">setDataIndex </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">){
476 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.dataIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">dataIndex</span><span class="jsdoc-syntax">;
481 </span><span class="jsdoc-comment">/**
482 * Returns true if the cell is editable.
483 * @param {Number} colIndex The column index
484 * @param {Number} rowIndex The row index - this is nto actually used..?
487 </span><span class="jsdoc-var">isCellEditable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">){
488 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.editable </span><span class="jsdoc-syntax">|| (</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.editable </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"undefined" </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.editor</span><span class="jsdoc-syntax">)) ? </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
491 </span><span class="jsdoc-comment">/**
492 * Returns the editor defined for the cell/column.
493 * return false or null to disable editing.
494 * @param {Number} colIndex The column index
495 * @param {Number} rowIndex The row index
498 </span><span class="jsdoc-var">getCellEditor </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">rowIndex</span><span class="jsdoc-syntax">){
499 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.editor</span><span class="jsdoc-syntax">;
502 </span><span class="jsdoc-comment">/**
503 * Sets if a column is editable.
504 * @param {Number} col The column index
505 * @param {Boolean} editable True if the column is editable
507 </span><span class="jsdoc-var">setEditable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">editable</span><span class="jsdoc-syntax">){
508 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.editable </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">editable</span><span class="jsdoc-syntax">;
512 </span><span class="jsdoc-comment">/**
513 * Returns true if the column is hidden.
514 * @param {Number} colIndex The column index
517 </span><span class="jsdoc-var">isHidden </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
518 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.hidden</span><span class="jsdoc-syntax">;
522 </span><span class="jsdoc-comment">/**
523 * Returns true if the column width cannot be changed
525 </span><span class="jsdoc-var">isFixed </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
526 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.fixed</span><span class="jsdoc-syntax">;
529 </span><span class="jsdoc-comment">/**
530 * Returns true if the column can be resized
533 </span><span class="jsdoc-var">isResizable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">){
534 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">colIndex </span><span class="jsdoc-syntax">>= 0 && </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.resizable </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.fixed </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
536 </span><span class="jsdoc-comment">/**
537 * Sets if a column is hidden.
538 * @param {Number} colIndex The column index
539 * @param {Boolean} hidden True if the column is hidden
541 </span><span class="jsdoc-var">setHidden </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">){
542 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">;
543 </span><span class="jsdoc-var">this.totalWidth </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
544 </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"hiddenchange"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">colIndex</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">);
547 </span><span class="jsdoc-comment">/**
548 * Sets the editor for a column.
549 * @param {Number} col The column index
550 * @param {Object} editor The editor object
552 </span><span class="jsdoc-var">setEditor </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">editor</span><span class="jsdoc-syntax">){
553 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">col</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">editor</span><span class="jsdoc-syntax">;
555 </span><span class="jsdoc-comment">/**
556 * Add a column (experimental...) - defaults to adding to the end..
557 * @param {Object} config
559 </span><span class="jsdoc-var">addColumn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">)
562 </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.config.length</span><span class="jsdoc-syntax">;
563 </span><span class="jsdoc-var">this.config</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
565 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">c.dataIndex </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"undefined"</span><span class="jsdoc-syntax">){
566 </span><span class="jsdoc-var">c.dataIndex </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">;
568 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">c.renderer </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"string"</span><span class="jsdoc-syntax">){
569 </span><span class="jsdoc-var">c.renderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.util.Format</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c.renderer</span><span class="jsdoc-syntax">];
571 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">c.id </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"undefined"</span><span class="jsdoc-syntax">){
572 </span><span class="jsdoc-var">c.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.id</span><span class="jsdoc-syntax">();
574 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.editor </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">c.editor.xtype</span><span class="jsdoc-syntax">){
575 </span><span class="jsdoc-var">c.editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.factory</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.editor</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.grid</span><span class="jsdoc-syntax">);
577 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.editor </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">c.editor.isFormField</span><span class="jsdoc-syntax">){
578 </span><span class="jsdoc-var">c.editor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.grid.GridEditor</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">c.editor</span><span class="jsdoc-syntax">);
580 </span><span class="jsdoc-var">this.lookup</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">c.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">c</span><span class="jsdoc-syntax">;
585 </span><span class="jsdoc-var">Roo.grid.ColumnModel.defaultRenderer </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">)
587 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"object"</span><span class="jsdoc-syntax">) {
588 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">;
590 </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"string" </span><span class="jsdoc-syntax">&& </span><span class="jsdoc-var">value.length </span><span class="jsdoc-syntax">< 1){
591 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">"&#160;"</span><span class="jsdoc-syntax">;
594 </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">String.format</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"{0}"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">value</span><span class="jsdoc-syntax">);
597 </span><span class="jsdoc-comment">// Alias for backwards compatibility
598 </span><span class="jsdoc-var">Roo.grid.DefaultColumnModel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.grid.ColumnModel</span><span class="jsdoc-syntax">;
599 </span></code></body></html>