tvheadend/vendor/ext-3.4.1/docs/source/ColumnModel.html
Adam Sutton bafcfff42d webui: restructure webui/extjs source files
I want to keep the 3rd-party packages away from the main source
where possible.
2013-06-03 17:11:01 +01:00

668 lines
28 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>The source code</title>
<link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="../resources/prettify/prettify.js"></script>
<style type="text/css">
.highlight { display: block; background-color: #ddd; }
</style>
<script type="text/javascript">
function highlight() {
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
}
</script>
</head>
<body onload="prettyPrint(); highlight();">
<pre class="prettyprint lang-js"><span id='Ext-grid-ColumnModel-method-constructor'><span id='Ext-grid-ColumnModel'>/**
</span></span> * @class Ext.grid.ColumnModel
* @extends Ext.util.Observable
* &lt;p&gt;After the data has been read into the client side cache (&lt;b&gt;{@link Ext.data.Store Store}&lt;/b&gt;),
* the ColumnModel is used to configure how and what parts of that data will be displayed in the
* vertical slices (columns) of the grid. The Ext.grid.ColumnModel Class is the default implementation
* of a ColumnModel used by implentations of {@link Ext.grid.GridPanel GridPanel}.&lt;/p&gt;
* &lt;p&gt;Data is mapped into the store's records and then indexed into the ColumnModel using the
* &lt;tt&gt;{@link Ext.grid.Column#dataIndex dataIndex}&lt;/tt&gt;:&lt;/p&gt;
* &lt;pre&gt;&lt;code&gt;
{data source} == mapping ==&gt; {data store} == &lt;b&gt;&lt;tt&gt;{@link Ext.grid.Column#dataIndex dataIndex}&lt;/tt&gt;&lt;/b&gt; ==&gt; {ColumnModel}
* &lt;/code&gt;&lt;/pre&gt;
* &lt;p&gt;Each {@link Ext.grid.Column Column} in the grid's ColumnModel is configured with a
* &lt;tt&gt;{@link Ext.grid.Column#dataIndex dataIndex}&lt;/tt&gt; to specify how the data within
* each record in the store is indexed into the ColumnModel.&lt;/p&gt;
* &lt;p&gt;There are two ways to initialize the ColumnModel class:&lt;/p&gt;
* &lt;p&gt;&lt;u&gt;Initialization Method 1: an Array&lt;/u&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
var colModel = new Ext.grid.ColumnModel([
{ header: &quot;Ticker&quot;, width: 60, sortable: true},
{ header: &quot;Company Name&quot;, width: 150, sortable: true, id: 'company'},
{ header: &quot;Market Cap.&quot;, width: 100, sortable: true},
{ header: &quot;$ Sales&quot;, width: 100, sortable: true, renderer: money},
{ header: &quot;Employees&quot;, width: 100, sortable: true, resizable: false}
]);
&lt;/code&gt;&lt;/pre&gt;
* &lt;p&gt;The ColumnModel may be initialized with an Array of {@link Ext.grid.Column} column configuration
* objects to define the initial layout / display of the columns in the Grid. The order of each
* {@link Ext.grid.Column} column configuration object within the specified Array defines the initial
* order of the column display. A Column's display may be initially hidden using the
* &lt;tt&gt;{@link Ext.grid.Column#hidden hidden}&lt;/tt&gt;&lt;/b&gt; config property (and then shown using the column
* header menu). Fields that are not included in the ColumnModel will not be displayable at all.&lt;/p&gt;
* &lt;p&gt;How each column in the grid correlates (maps) to the {@link Ext.data.Record} field in the
* {@link Ext.data.Store Store} the column draws its data from is configured through the
* &lt;b&gt;&lt;tt&gt;{@link Ext.grid.Column#dataIndex dataIndex}&lt;/tt&gt;&lt;/b&gt;. If the
* &lt;b&gt;&lt;tt&gt;{@link Ext.grid.Column#dataIndex dataIndex}&lt;/tt&gt;&lt;/b&gt; is not explicitly defined (as shown in the
* example above) it will use the column configuration's index in the Array as the index.&lt;/p&gt;
* &lt;p&gt;See &lt;b&gt;&lt;tt&gt;{@link Ext.grid.Column}&lt;/tt&gt;&lt;/b&gt; for additional configuration options for each column.&lt;/p&gt;
* &lt;p&gt;&lt;u&gt;Initialization Method 2: an Object&lt;/u&gt;&lt;/p&gt;
* &lt;p&gt;In order to use configuration options from &lt;tt&gt;Ext.grid.ColumnModel&lt;/tt&gt;, an Object may be used to
* initialize the ColumnModel. The column configuration Array will be specified in the &lt;tt&gt;&lt;b&gt;{@link #columns}&lt;/b&gt;&lt;/tt&gt;
* config property. The &lt;tt&gt;&lt;b&gt;{@link #defaults}&lt;/b&gt;&lt;/tt&gt; config property can be used to apply defaults
* for all columns, e.g.:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
var colModel = new Ext.grid.ColumnModel({
columns: [
{ header: &quot;Ticker&quot;, width: 60, menuDisabled: false},
{ header: &quot;Company Name&quot;, width: 150, id: 'company'},
{ header: &quot;Market Cap.&quot;},
{ header: &quot;$ Sales&quot;, renderer: money},
{ header: &quot;Employees&quot;, resizable: false}
],
defaults: {
sortable: true,
menuDisabled: true,
width: 100
},
listeners: {
{@link #hiddenchange}: function(cm, colIndex, hidden) {
saveConfig(colIndex, hidden);
}
}
});
&lt;/code&gt;&lt;/pre&gt;
* &lt;p&gt;In both examples above, the ability to apply a CSS class to all cells in a column (including the
* header) is demonstrated through the use of the &lt;b&gt;&lt;tt&gt;{@link Ext.grid.Column#id id}&lt;/tt&gt;&lt;/b&gt; config
* option. This column could be styled by including the following css:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;
//add this css *after* the core css is loaded
.x-grid3-td-company {
color: red; // entire column will have red font
}
// modify the header row only, adding an icon to the column header
.x-grid3-hd-company {
background: transparent
url(../../resources/images/icons/silk/building.png)
no-repeat 3px 3px ! important;
padding-left:20px;
}
&lt;/code&gt;&lt;/pre&gt;
* Note that the &quot;Company Name&quot; column could be specified as the
* &lt;b&gt;&lt;tt&gt;{@link Ext.grid.GridPanel}.{@link Ext.grid.GridPanel#autoExpandColumn autoExpandColumn}&lt;/tt&gt;&lt;/b&gt;.
* @constructor
* @param {Mixed} config Specify either an Array of {@link Ext.grid.Column} configuration objects or specify
* a configuration Object (see introductory section discussion utilizing Initialization Method 2 above).
*/
Ext.grid.ColumnModel = Ext.extend(Ext.util.Observable, {
<span id='Ext-grid-ColumnModel-cfg-defaultWidth'> /**
</span> * @cfg {Number} defaultWidth (optional) The width of columns which have no &lt;tt&gt;{@link #width}&lt;/tt&gt;
* specified (defaults to &lt;tt&gt;100&lt;/tt&gt;). This property shall preferably be configured through the
* &lt;tt&gt;&lt;b&gt;{@link #defaults}&lt;/b&gt;&lt;/tt&gt; config property.
*/
defaultWidth: 100,
<span id='Ext-grid-ColumnModel-cfg-defaultSortable'> /**
</span> * @cfg {Boolean} defaultSortable (optional) Default sortable of columns which have no
* sortable specified (defaults to &lt;tt&gt;false&lt;/tt&gt;). This property shall preferably be configured
* through the &lt;tt&gt;&lt;b&gt;{@link #defaults}&lt;/b&gt;&lt;/tt&gt; config property.
*/
defaultSortable: false,
<span id='Ext-grid-ColumnModel-cfg-columns'> /**
</span> * @cfg {Array} columns An Array of object literals. The config options defined by
* &lt;b&gt;{@link Ext.grid.Column}&lt;/b&gt; are the options which may appear in the object literal for each
* individual column definition.
*/
<span id='Ext-grid-ColumnModel-cfg-defaults'> /**
</span> * @cfg {Object} defaults Object literal which will be used to apply {@link Ext.grid.Column}
* configuration options to all &lt;tt&gt;&lt;b&gt;{@link #columns}&lt;/b&gt;&lt;/tt&gt;. Configuration options specified with
* individual {@link Ext.grid.Column column} configs will supersede these &lt;tt&gt;&lt;b&gt;{@link #defaults}&lt;/b&gt;&lt;/tt&gt;.
*/
constructor : function(config) {
<span id='Ext-grid-ColumnModel-property-config'> /**
</span> * An Array of {@link Ext.grid.Column Column definition} objects representing the configuration
* of this ColumnModel. See {@link Ext.grid.Column} for the configuration properties that may
* be specified.
* @property config
* @type Array
*/
if (config.columns) {
Ext.apply(this, config);
this.setConfig(config.columns, true);
} else {
this.setConfig(config, true);
}
this.addEvents(
<span id='Ext-grid-ColumnModel-event-widthchange'> /**
</span> * @event widthchange
* Fires when the width of a column is programmaticially changed using
* &lt;code&gt;{@link #setColumnWidth}&lt;/code&gt;.
* Note internal resizing suppresses the event from firing. See also
* {@link Ext.grid.GridPanel}.&lt;code&gt;{@link #columnresize}&lt;/code&gt;.
* @param {ColumnModel} this
* @param {Number} columnIndex The column index
* @param {Number} newWidth The new width
*/
&quot;widthchange&quot;,
<span id='Ext-grid-ColumnModel-event-headerchange'> /**
</span> * @event headerchange
* Fires when the text of a header changes.
* @param {ColumnModel} this
* @param {Number} columnIndex The column index
* @param {String} newText The new header text
*/
&quot;headerchange&quot;,
<span id='Ext-grid-ColumnModel-event-hiddenchange'> /**
</span> * @event hiddenchange
* Fires when a column is hidden or &quot;unhidden&quot;.
* @param {ColumnModel} this
* @param {Number} columnIndex The column index
* @param {Boolean} hidden true if hidden, false otherwise
*/
&quot;hiddenchange&quot;,
<span id='Ext-grid-ColumnModel-event-columnmoved'> /**
</span> * @event columnmoved
* Fires when a column is moved.
* @param {ColumnModel} this
* @param {Number} oldIndex
* @param {Number} newIndex
*/
&quot;columnmoved&quot;,
<span id='Ext-grid-ColumnModel-event-configchange'> /**
</span> * @event configchange
* Fires when the configuration is changed
* @param {ColumnModel} this
*/
&quot;configchange&quot;
);
Ext.grid.ColumnModel.superclass.constructor.call(this);
},
<span id='Ext-grid-ColumnModel-method-getColumnId'> /**
</span> * Returns the id of the column at the specified index.
* @param {Number} index The column index
* @return {String} the id
*/
getColumnId : function(index) {
return this.config[index].id;
},
<span id='Ext-grid-ColumnModel-method-getColumnAt'> getColumnAt : function(index) {
</span> return this.config[index];
},
<span id='Ext-grid-ColumnModel-method-setConfig'> /**
</span> * &lt;p&gt;Reconfigures this column model according to the passed Array of column definition objects.
* For a description of the individual properties of a column definition object, see the
* &lt;a href=&quot;#Ext.grid.ColumnModel-configs&quot;&gt;Config Options&lt;/a&gt;.&lt;/p&gt;
* &lt;p&gt;Causes the {@link #configchange} event to be fired. A {@link Ext.grid.GridPanel GridPanel}
* using this ColumnModel will listen for this event and refresh its UI automatically.&lt;/p&gt;
* @param {Array} config Array of Column definition objects.
* @param {Boolean} initial Specify &lt;tt&gt;true&lt;/tt&gt; to bypass cleanup which deletes the &lt;tt&gt;totalWidth&lt;/tt&gt;
* and destroys existing editors.
*/
setConfig : function(config, initial) {
var i, c, len;
if (!initial) { // cleanup
delete this.totalWidth;
for (i = 0, len = this.config.length; i &lt; len; i++) {
c = this.config[i];
if (c.setEditor) {
//check here, in case we have a special column like a CheckboxSelectionModel
c.setEditor(null);
}
}
}
// backward compatibility
this.defaults = Ext.apply({
width: this.defaultWidth,
sortable: this.defaultSortable
}, this.defaults);
this.config = config;
this.lookup = {};
for (i = 0, len = config.length; i &lt; len; i++) {
c = Ext.applyIf(config[i], this.defaults);
// if no id, create one using column's ordinal position
if (Ext.isEmpty(c.id)) {
c.id = i;
}
if (!c.isColumn) {
var Cls = Ext.grid.Column.types[c.xtype || 'gridcolumn'];
c = new Cls(c);
config[i] = c;
}
this.lookup[c.id] = c;
}
if (!initial) {
this.fireEvent('configchange', this);
}
},
<span id='Ext-grid-ColumnModel-method-getColumnById'> /**
</span> * Returns the column for a specified id.
* @param {String} id The column id
* @return {Object} the column
*/
getColumnById : function(id) {
return this.lookup[id];
},
<span id='Ext-grid-ColumnModel-method-getIndexById'> /**
</span> * Returns the index for a specified column id.
* @param {String} id The column id
* @return {Number} the index, or -1 if not found
*/
getIndexById : function(id) {
for (var i = 0, len = this.config.length; i &lt; len; i++) {
if (this.config[i].id == id) {
return i;
}
}
return -1;
},
<span id='Ext-grid-ColumnModel-method-moveColumn'> /**
</span> * Moves a column from one position to another.
* @param {Number} oldIndex The index of the column to move.
* @param {Number} newIndex The position at which to reinsert the coolumn.
*/
moveColumn : function(oldIndex, newIndex) {
var config = this.config,
c = config[oldIndex];
config.splice(oldIndex, 1);
config.splice(newIndex, 0, c);
this.dataMap = null;
this.fireEvent(&quot;columnmoved&quot;, this, oldIndex, newIndex);
},
<span id='Ext-grid-ColumnModel-method-getColumnCount'> /**
</span> * Returns the number of columns.
* @param {Boolean} visibleOnly Optional. Pass as true to only include visible columns.
* @return {Number}
*/
getColumnCount : function(visibleOnly) {
var length = this.config.length,
c = 0,
i;
if (visibleOnly === true) {
for (i = 0; i &lt; length; i++) {
if (!this.isHidden(i)) {
c++;
}
}
return c;
}
return length;
},
<span id='Ext-grid-ColumnModel-method-getColumnsBy'> /**
</span> * Returns the column configs that return true by the passed function that is called
* with (columnConfig, index)
&lt;pre&gt;&lt;code&gt;
// returns an array of column config objects for all hidden columns
var columns = grid.getColumnModel().getColumnsBy(function(c){
return c.hidden;
});
&lt;/code&gt;&lt;/pre&gt;
* @param {Function} fn A function which, when passed a {@link Ext.grid.Column Column} object, must
* return &lt;code&gt;true&lt;/code&gt; if the column is to be included in the returned Array.
* @param {Object} scope (optional) The scope (&lt;code&gt;this&lt;/code&gt; reference) in which the function
* is executed. Defaults to this ColumnModel.
* @return {Array} result
*/
getColumnsBy : function(fn, scope) {
var config = this.config,
length = config.length,
result = [],
i, c;
for (i = 0; i &lt; length; i++){
c = config[i];
if (fn.call(scope || this, c, i) === true) {
result[result.length] = c;
}
}
return result;
},
<span id='Ext-grid-ColumnModel-method-isSortable'> /**
</span> * Returns true if the specified column is sortable.
* @param {Number} col The column index
* @return {Boolean}
*/
isSortable : function(col) {
return !!this.config[col].sortable;
},
<span id='Ext-grid-ColumnModel-method-isMenuDisabled'> /**
</span> * Returns true if the specified column menu is disabled.
* @param {Number} col The column index
* @return {Boolean}
*/
isMenuDisabled : function(col) {
return !!this.config[col].menuDisabled;
},
<span id='Ext-grid-ColumnModel-method-getRenderer'> /**
</span> * Returns the rendering (formatting) function defined for the column.
* @param {Number} col The column index.
* @return {Function} The function used to render the cell. See {@link #setRenderer}.
*/
getRenderer : function(col) {
return this.config[col].renderer || Ext.grid.ColumnModel.defaultRenderer;
},
<span id='Ext-grid-ColumnModel-method-getRendererScope'> getRendererScope : function(col) {
</span> return this.config[col].scope;
},
<span id='Ext-grid-ColumnModel-method-setRenderer'> /**
</span> * Sets the rendering (formatting) function for a column. See {@link Ext.util.Format} for some
* default formatting functions.
* @param {Number} col The column index
* @param {Function} fn The function to use to process the cell's raw data
* to return HTML markup for the grid view. The render function is called with
* the following parameters:&lt;ul&gt;
* &lt;li&gt;&lt;b&gt;value&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;The data value for the cell.&lt;/p&gt;&lt;/li&gt;
* &lt;li&gt;&lt;b&gt;metadata&lt;/b&gt; : Object&lt;p class=&quot;sub-desc&quot;&gt;An object in which you may set the following attributes:&lt;ul&gt;
* &lt;li&gt;&lt;b&gt;css&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;A CSS class name to add to the cell's TD element.&lt;/p&gt;&lt;/li&gt;
* &lt;li&gt;&lt;b&gt;attr&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;An HTML attribute definition string to apply to the data container element &lt;i&gt;within&lt;/i&gt; the table cell
* (e.g. 'style=&quot;color:red;&quot;').&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/li&gt;
* &lt;li&gt;&lt;b&gt;record&lt;/b&gt; : Ext.data.record&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Record} from which the data was extracted.&lt;/p&gt;&lt;/li&gt;
* &lt;li&gt;&lt;b&gt;rowIndex&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;Row index&lt;/p&gt;&lt;/li&gt;
* &lt;li&gt;&lt;b&gt;colIndex&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;Column index&lt;/p&gt;&lt;/li&gt;
* &lt;li&gt;&lt;b&gt;store&lt;/b&gt; : Ext.data.Store&lt;p class=&quot;sub-desc&quot;&gt;The {@link Ext.data.Store} object from which the Record was extracted.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;
*/
setRenderer : function(col, fn) {
this.config[col].renderer = fn;
},
<span id='Ext-grid-ColumnModel-method-getColumnWidth'> /**
</span> * Returns the width for the specified column.
* @param {Number} col The column index
* @return {Number}
*/
getColumnWidth : function(col) {
var width = this.config[col].width;
if(typeof width != 'number'){
width = this.defaultWidth;
}
return width;
},
<span id='Ext-grid-ColumnModel-method-setColumnWidth'> /**
</span> * Sets the width for a column.
* @param {Number} col The column index
* @param {Number} width The new width
* @param {Boolean} suppressEvent True to suppress firing the &lt;code&gt;{@link #widthchange}&lt;/code&gt;
* event. Defaults to false.
*/
setColumnWidth : function(col, width, suppressEvent) {
this.config[col].width = width;
this.totalWidth = null;
if (!suppressEvent) {
this.fireEvent(&quot;widthchange&quot;, this, col, width);
}
},
<span id='Ext-grid-ColumnModel-method-getTotalWidth'> /**
</span> * Returns the total width of all columns.
* @param {Boolean} includeHidden True to include hidden column widths
* @return {Number}
*/
getTotalWidth : function(includeHidden) {
if (!this.totalWidth) {
this.totalWidth = 0;
for (var i = 0, len = this.config.length; i &lt; len; i++) {
if (includeHidden || !this.isHidden(i)) {
this.totalWidth += this.getColumnWidth(i);
}
}
}
return this.totalWidth;
},
<span id='Ext-grid-ColumnModel-method-getColumnHeader'> /**
</span> * Returns the header for the specified column.
* @param {Number} col The column index
* @return {String}
*/
getColumnHeader : function(col) {
return this.config[col].header;
},
<span id='Ext-grid-ColumnModel-method-setColumnHeader'> /**
</span> * Sets the header for a column.
* @param {Number} col The column index
* @param {String} header The new header
*/
setColumnHeader : function(col, header) {
this.config[col].header = header;
this.fireEvent(&quot;headerchange&quot;, this, col, header);
},
<span id='Ext-grid-ColumnModel-method-getColumnTooltip'> /**
</span> * Returns the tooltip for the specified column.
* @param {Number} col The column index
* @return {String}
*/
getColumnTooltip : function(col) {
return this.config[col].tooltip;
},
<span id='Ext-grid-ColumnModel-method-setColumnTooltip'> /**
</span> * Sets the tooltip for a column.
* @param {Number} col The column index
* @param {String} tooltip The new tooltip
*/
setColumnTooltip : function(col, tooltip) {
this.config[col].tooltip = tooltip;
},
<span id='Ext-grid-ColumnModel-method-getDataIndex'> /**
</span> * Returns the dataIndex for the specified column.
&lt;pre&gt;&lt;code&gt;
// Get field name for the column
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
&lt;/code&gt;&lt;/pre&gt;
* @param {Number} col The column index
* @return {String} The column's dataIndex
*/
getDataIndex : function(col) {
return this.config[col].dataIndex;
},
<span id='Ext-grid-ColumnModel-method-setDataIndex'> /**
</span> * Sets the dataIndex for a column.
* @param {Number} col The column index
* @param {String} dataIndex The new dataIndex
*/
setDataIndex : function(col, dataIndex) {
this.config[col].dataIndex = dataIndex;
},
<span id='Ext-grid-ColumnModel-method-findColumnIndex'> /**
</span> * Finds the index of the first matching column for the given dataIndex.
* @param {String} col The dataIndex to find
* @return {Number} The column index, or -1 if no match was found
*/
findColumnIndex : function(dataIndex) {
var c = this.config;
for(var i = 0, len = c.length; i &lt; len; i++){
if(c[i].dataIndex == dataIndex){
return i;
}
}
return -1;
},
<span id='Ext-grid-ColumnModel-method-isCellEditable'> /**
</span> * Returns true if the cell is editable.
&lt;pre&gt;&lt;code&gt;
var store = new Ext.data.Store({...});
var colModel = new Ext.grid.ColumnModel({
columns: [...],
isCellEditable: function(col, row) {
var record = store.getAt(row);
if (record.get('readonly')) { // replace with your condition
return false;
}
return Ext.grid.ColumnModel.prototype.isCellEditable.call(this, col, row);
}
});
var grid = new Ext.grid.GridPanel({
store: store,
colModel: colModel,
...
});
&lt;/code&gt;&lt;/pre&gt;
* @param {Number} colIndex The column index
* @param {Number} rowIndex The row index
* @return {Boolean}
*/
isCellEditable : function(colIndex, rowIndex) {
var c = this.config[colIndex],
ed = c.editable;
//force boolean
return !!(ed || (!Ext.isDefined(ed) &amp;&amp; c.editor));
},
<span id='Ext-grid-ColumnModel-method-getCellEditor'> /**
</span> * Returns the editor defined for the cell/column.
* @param {Number} colIndex The column index
* @param {Number} rowIndex The row index
* @return {Ext.Editor} The {@link Ext.Editor Editor} that was created to wrap
* the {@link Ext.form.Field Field} used to edit the cell.
*/
getCellEditor : function(colIndex, rowIndex) {
return this.config[colIndex].getCellEditor(rowIndex);
},
<span id='Ext-grid-ColumnModel-method-setEditable'> /**
</span> * Sets if a column is editable.
* @param {Number} col The column index
* @param {Boolean} editable True if the column is editable
*/
setEditable : function(col, editable) {
this.config[col].editable = editable;
},
<span id='Ext-grid-ColumnModel-method-isHidden'> /**
</span> * Returns &lt;tt&gt;true&lt;/tt&gt; if the column is &lt;code&gt;{@link Ext.grid.Column#hidden hidden}&lt;/code&gt;,
* &lt;tt&gt;false&lt;/tt&gt; otherwise.
* @param {Number} colIndex The column index
* @return {Boolean}
*/
isHidden : function(colIndex) {
return !!this.config[colIndex].hidden; // ensure returns boolean
},
<span id='Ext-grid-ColumnModel-method-isFixed'> /**
</span> * Returns &lt;tt&gt;true&lt;/tt&gt; if the column is &lt;code&gt;{@link Ext.grid.Column#fixed fixed}&lt;/code&gt;,
* &lt;tt&gt;false&lt;/tt&gt; otherwise.
* @param {Number} colIndex The column index
* @return {Boolean}
*/
isFixed : function(colIndex) {
return !!this.config[colIndex].fixed;
},
<span id='Ext-grid-ColumnModel-method-isResizable'> /**
</span> * Returns true if the column can be resized
* @return {Boolean}
*/
isResizable : function(colIndex) {
return colIndex &gt;= 0 &amp;&amp; this.config[colIndex].resizable !== false &amp;&amp; this.config[colIndex].fixed !== true;
},
<span id='Ext-grid-ColumnModel-method-setHidden'> /**
</span> * Sets if a column is hidden.
&lt;pre&gt;&lt;code&gt;
myGrid.getColumnModel().setHidden(0, true); // hide column 0 (0 = the first column).
&lt;/code&gt;&lt;/pre&gt;
* @param {Number} colIndex The column index
* @param {Boolean} hidden True if the column is hidden
*/
setHidden : function(colIndex, hidden) {
var c = this.config[colIndex];
if(c.hidden !== hidden){
c.hidden = hidden;
this.totalWidth = null;
this.fireEvent(&quot;hiddenchange&quot;, this, colIndex, hidden);
}
},
<span id='Ext-grid-ColumnModel-method-setEditor'> /**
</span> * Sets the editor for a column and destroys the prior editor.
* @param {Number} col The column index
* @param {Object} editor The editor object
*/
setEditor : function(col, editor) {
this.config[col].setEditor(editor);
},
<span id='Ext-grid-ColumnModel-method-destroy'> /**
</span> * Destroys this column model by purging any event listeners. Destroys and dereferences all Columns.
*/
destroy : function() {
var length = this.config.length,
i = 0;
for (; i &lt; length; i++){
this.config[i].destroy(); // Column's destroy encapsulates all cleanup.
}
delete this.config;
delete this.lookup;
this.purgeListeners();
},
<span id='Ext-grid-ColumnModel-method-setState'> /**
</span> * @private
* Setup any saved state for the column, ensures that defaults are applied.
*/
setState : function(col, state) {
state = Ext.applyIf(state, this.defaults);
Ext.apply(this.config[col], state);
}
});
// private
Ext.grid.ColumnModel.defaultRenderer = function(value) {
if (typeof value == &quot;string&quot; &amp;&amp; value.length &lt; 1) {
return &quot;&amp;#160;&quot;;
}
return value;
};</pre>
</body>
</html>