-<div id="cls-Ext.grid.Column"></div>/**
- * @class Ext.grid.Column
- * <p>This class encapsulates column configuration data to be used in the initialization of a
- * {@link Ext.grid.ColumnModel ColumnModel}.</p>
- * <p>While subclasses are provided to render data in different ways, this class renders a passed
- * data field unchanged and is usually used for textual columns.</p>
- */
-Ext.grid.Column = Ext.extend(Object, {
- <div id="cfg-Ext.grid.Column-editable"></div>/**
- * @cfg {Boolean} editable Optional. Defaults to <tt>true</tt>, enabling the configured
- * <tt>{@link #editor}</tt>. Set to <tt>false</tt> to initially disable editing on this column.
- * The initial configuration may be dynamically altered using
- * {@link Ext.grid.ColumnModel}.{@link Ext.grid.ColumnModel#setEditable setEditable()}.
- */
- <div id="cfg-Ext.grid.Column-id"></div>/**
- * @cfg {String} id Optional. A name which identifies this column (defaults to the column's initial
- * ordinal position.) The <tt>id</tt> is used to create a CSS <b>class</b> name which is applied to all
- * table cells (including headers) in that column (in this context the <tt>id</tt> does not need to be
- * unique). The class name takes the form of <pre>x-grid3-td-<b>id</b></pre>
- * Header cells will also receive this class name, but will also have the class <pre>x-grid3-hd</pre>
- * So, to target header cells, use CSS selectors such as:<pre>.x-grid3-hd-row .x-grid3-td-<b>id</b></pre>
- * The {@link Ext.grid.GridPanel#autoExpandColumn} grid config option references the column via this
- * unique identifier.
- */
- <div id="cfg-Ext.grid.Column-header"></div>/**
- * @cfg {String} header Optional. The header text to be used as innerHTML
- * (html tags are accepted) to display in the Grid view. <b>Note</b>: to
- * have a clickable header with no text displayed use <tt>' '</tt>.
- */
- <div id="cfg-Ext.grid.Column-groupable"></div>/**
- * @cfg {Boolean} groupable Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option
- * may be used to disable the header menu item to group by the column selected. Defaults to <tt>true</tt>,
- * which enables the header menu group option. Set to <tt>false</tt> to disable (but still show) the
- * group option in the header menu for the column. See also <code>{@link #groupName}</code>.
- */
- <div id="cfg-Ext.grid.Column-groupName"></div>/**
- * @cfg {String} groupName Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option
- * may be used to specify the text with which to prefix the group field value in the group header line.
- * See also {@link #groupRenderer} and
- * {@link Ext.grid.GroupingView}.{@link Ext.grid.GroupingView#showGroupName showGroupName}.
- */
- <div id="cfg-Ext.grid.Column-groupRenderer"></div>/**
- * @cfg {Function} groupRenderer <p>Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option
- * may be used to specify the function used to format the grouping field value for display in the group
- * {@link #groupName header}. If a <tt><b>groupRenderer</b></tt> is not specified, the configured
- * <tt><b>{@link #renderer}</b></tt> will be called; if a <tt><b>{@link #renderer}</b></tt> is also not specified
- * the new value of the group field will be used.</p>
- * <p>The called function (either the <tt><b>groupRenderer</b></tt> or <tt><b>{@link #renderer}</b></tt>) will be
- * passed the following parameters:
- * <div class="mdetail-params"><ul>
- * <li><b>v</b> : Object<p class="sub-desc">The new value of the group field.</p></li>
- * <li><b>unused</b> : undefined<p class="sub-desc">Unused parameter.</p></li>
- * <li><b>r</b> : Ext.data.Record<p class="sub-desc">The Record providing the data
- * for the row which caused group change.</p></li>
- * <li><b>rowIndex</b> : Number<p class="sub-desc">The row index of the Record which caused group change.</p></li>
- * <li><b>colIndex</b> : Number<p class="sub-desc">The column index of the group field.</p></li>
- * <li><b>ds</b> : Ext.data.Store<p class="sub-desc">The Store which is providing the data Model.</p></li>
- * </ul></div></p>
- * <p>The function should return a string value.</p>
- */
- <div id="cfg-Ext.grid.Column-emptyGroupText"></div>/**
- * @cfg {String} emptyGroupText Optional. If the grid is being rendered by an {@link Ext.grid.GroupingView}, this option
- * may be used to specify the text to display when there is an empty group value. Defaults to the
- * {@link Ext.grid.GroupingView}.{@link Ext.grid.GroupingView#emptyGroupText emptyGroupText}.
- */
- <div id="cfg-Ext.grid.Column-dataIndex"></div>/**
- * @cfg {String} dataIndex <p><b>Required</b>. The name of the field in the
- * grid's {@link Ext.data.Store}'s {@link Ext.data.Record} definition from
- * which to draw the column's value.</p>
- */
- <div id="cfg-Ext.grid.Column-width"></div>/**
- * @cfg {Number} width
- * Optional. The initial width in pixels of the column.
- * The width of each column can also be affected if any of the following are configured:
- * <div class="mdetail-params"><ul>
- * <li>{@link Ext.grid.GridPanel}.<tt>{@link Ext.grid.GridPanel#autoExpandColumn autoExpandColumn}</tt></li>
- * <li>{@link Ext.grid.GridView}.<tt>{@link Ext.grid.GridView#forceFit forceFit}</tt>
- * <div class="sub-desc">
- * <p>By specifying <tt>forceFit:true</tt>, {@link #fixed non-fixed width} columns will be
- * re-proportioned (based on the relative initial widths) to fill the width of the grid so
- * that no horizontal scrollbar is shown.</p>
- * </div></li>
- * <li>{@link Ext.grid.GridView}.<tt>{@link Ext.grid.GridView#autoFill autoFill}</tt></li>
- * <li>{@link Ext.grid.GridPanel}.<tt>{@link Ext.grid.GridPanel#minColumnWidth minColumnWidth}</tt></li>
- * <br><p><b>Note</b>: when the width of each column is determined, a space on the right side
- * is reserved for the vertical scrollbar. The
- * {@link Ext.grid.GridView}.<tt>{@link Ext.grid.GridView#scrollOffset scrollOffset}</tt>
- * can be modified to reduce or eliminate the reserved offset.</p>
- */
- <div id="cfg-Ext.grid.Column-sortable"></div>/**
- * @cfg {Boolean} sortable Optional. <tt>true</tt> if sorting is to be allowed on this column.
- * Defaults to the value of the <code>{@link Ext.grid.ColumnModel#defaultSortable}</code> property.
- * Whether local/remote sorting is used is specified in <code>{@link Ext.data.Store#remoteSort}</code>.
- */
- <div id="cfg-Ext.grid.Column-fixed"></div>/**
- * @cfg {Boolean} fixed Optional. <tt>true</tt> if the column width cannot be changed. Defaults to <tt>false</tt>.
- */
- <div id="cfg-Ext.grid.Column-resizable"></div>/**
- * @cfg {Boolean} resizable Optional. <tt>false</tt> to disable column resizing. Defaults to <tt>true</tt>.
+Ext.define('Ext.grid.column.Column', {
+ extend: 'Ext.grid.header.Container',
+ alias: 'widget.gridcolumn',
+ requires: ['Ext.util.KeyNav'],
+ alternateClassName: 'Ext.grid.Column',
+
+ baseCls: Ext.baseCSSPrefix + 'column-header ' + Ext.baseCSSPrefix + 'unselectable',
+
+ // Not the standard, automatically applied overCls because we must filter out overs of child headers.
+ hoverCls: Ext.baseCSSPrefix + 'column-header-over',
+
+ handleWidth: 5,
+
+ sortState: null,
+
+ possibleSortStates: ['ASC', 'DESC'],
+
+ renderTpl:
+ '<div class="' + Ext.baseCSSPrefix + 'column-header-inner">' +
+ '<span class="' + Ext.baseCSSPrefix + 'column-header-text">' +
+ '{text}' +
+ '</span>' +
+ '<tpl if="!values.menuDisabled"><div class="' + Ext.baseCSSPrefix + 'column-header-trigger"></div></tpl>' +
+ '</div>',
+
+<span id='Ext-grid.column.Column-cfg-columns'> /**
+</span> * @cfg {Array} columns
+ * <p>An optional array of sub-column definitions. This column becomes a group, and houses the columns defined in the <code>columns</code> config.</p>
+ * <p>Group columns may not be sortable. But they may be hideable and moveable. And you may move headers into and out of a group. Note that
+ * if all sub columns are dragged out of a group, the group is destroyed.