+
The source code
@@ -16,67 +17,7 @@
* @constructor
* @param {Object} config
*/
-Ext.grid.GridView = function(config){
- Ext.apply(this, config);
- // These events are only used internally by the grid components
- this.addEvents(
- /**
- * @event beforerowremoved
- * Internal UI Event. Fired before a row is removed.
- * @param {Ext.grid.GridView} view
- * @param {Number} rowIndex The index of the row to be removed.
- * @param {Ext.data.Record} record The Record to be removed
- */
- "beforerowremoved",
- /**
- * @event beforerowsinserted
- * Internal UI Event. Fired before rows are inserted.
- * @param {Ext.grid.GridView} view
- * @param {Number} firstRow The index of the first row to be inserted.
- * @param {Number} lastRow The index of the last row to be inserted.
- */
- "beforerowsinserted",
- /**
- * @event beforerefresh
- * Internal UI Event. Fired before the view is refreshed.
- * @param {Ext.grid.GridView} view
- */
- "beforerefresh",
- /**
- * @event rowremoved
- * Internal UI Event. Fired after a row is removed.
- * @param {Ext.grid.GridView} view
- * @param {Number} rowIndex The index of the row that was removed.
- * @param {Ext.data.Record} record The Record that was removed
- */
- "rowremoved",
- /**
- * @event rowsinserted
- * Internal UI Event. Fired after rows are inserted.
- * @param {Ext.grid.GridView} view
- * @param {Number} firstRow The index of the first inserted.
- * @param {Number} lastRow The index of the last row inserted.
- */
- "rowsinserted",
- /**
- * @event rowupdated
- * Internal UI Event. Fired after a row has been updated.
- * @param {Ext.grid.GridView} view
- * @param {Number} firstRow The index of the row updated.
- * @param {Ext.data.record} record The Record backing the row updated.
- */
- "rowupdated",
- /**
- * @event refresh
- * Internal UI Event. Fired after the GridView's body has been refreshed.
- * @param {Ext.grid.GridView} view
- */
- "refresh"
- );
- Ext.grid.GridView.superclass.constructor.call(this);
-};
-
-Ext.extend(Ext.grid.GridView, Ext.util.Observable, {
+Ext.grid.GridView = Ext.extend(Ext.util.Observable, {
/**
* Override this function to apply custom CSS classes to rows during rendering. You can also supply custom
* parameters to the row template for the current row to customize how it is rendered using the rowParams
@@ -154,9 +95,10 @@ viewConfig: {
deferEmptyText : true,
/**
* @cfg {Number} scrollOffset The amount of space to reserve for the vertical scrollbar
- * (defaults to 19 pixels).
+ * (defaults to undefined). If an explicit value isn't specified, this will be automatically
+ * calculated.
*/
- scrollOffset : 19,
+ scrollOffset : undefined,
/**
* @cfg {Boolean} autoFill
* Defaults to false. Specify true to have the column widths re-proportioned
@@ -177,24 +119,24 @@ viewConfig: {
*/
forceFit : false,
/**
- * @cfg {Array} sortClasses The CSS classes applied to a header when it is sorted. (defaults to ["sort-asc", "sort-desc"])
+ * @cfg {Array} sortClasses The CSS classes applied to a header when it is sorted. (defaults to ['sort-asc', 'sort-desc'])
*/
- sortClasses : ["sort-asc", "sort-desc"],
+ sortClasses : ['sort-asc', 'sort-desc'],
/**
- * @cfg {String} sortAscText The text displayed in the "Sort Ascending" menu item (defaults to "Sort Ascending")
+ * @cfg {String} sortAscText The text displayed in the 'Sort Ascending' menu item (defaults to 'Sort Ascending')
*/
- sortAscText : "Sort Ascending",
+ sortAscText : 'Sort Ascending',
/**
- * @cfg {String} sortDescText The text displayed in the "Sort Descending" menu item (defaults to "Sort Descending")
+ * @cfg {String} sortDescText The text displayed in the 'Sort Descending' menu item (defaults to 'Sort Descending')
*/
- sortDescText : "Sort Descending",
+ sortDescText : 'Sort Descending',
/**
- * @cfg {String} columnsText The text displayed in the "Columns" menu item (defaults to "Columns")
+ * @cfg {String} columnsText The text displayed in the 'Columns' menu item (defaults to 'Columns')
*/
- columnsText : "Columns",
+ columnsText : 'Columns',
/**
- * @cfg {String} selectedRowClass The CSS class applied to a selected row (defaults to "x-grid3-row-selected"). An
+ * @cfg {String} selectedRowClass The CSS class applied to a selected row (defaults to 'x-grid3-row-selected'). An
* example overriding the default styling:
* @type String
*/
- selectedRowClass : "x-grid3-row-selected",
+ selectedRowClass : 'x-grid3-row-selected',
// private
borderWidth : 2,
@@ -224,6 +166,11 @@ viewConfig: {
* @cfg {Number} rowSelectorDepth The number of levels to search for rows in event delegation (defaults to 10)
*/
rowSelectorDepth : 10,
+
+ /**
+ * @cfg {Number} rowBodySelectorDepth The number of levels to search for row bodies in event delegation (defaults to 10)
+ */
+ rowBodySelectorDepth : 10,
/**
* @cfg {String} cellSelector The selector used to find cells internally (defaults to 'td.x-grid3-cell')
@@ -234,10 +181,75 @@ viewConfig: {
*/
rowSelector : 'div.x-grid3-row',
+ /**
+ * @cfg {String} rowBodySelector The selector used to find row bodies internally (defaults to 'div.x-grid3-row')
+ */
+ rowBodySelector : 'div.x-grid3-row-body',
+
// private
firstRowCls: 'x-grid3-row-first',
lastRowCls: 'x-grid3-row-last',
rowClsRe: /(?:^|\s+)x-grid3-row-(first|last|alt)(?:\s+|$)/g,
+
+ constructor : function(config){
+ Ext.apply(this, config);
+ // These events are only used internally by the grid components
+ this.addEvents(
+ /**
+ * @event beforerowremoved
+ * Internal UI Event. Fired before a row is removed.
+ * @param {Ext.grid.GridView} view
+ * @param {Number} rowIndex The index of the row to be removed.
+ * @param {Ext.data.Record} record The Record to be removed
+ */
+ 'beforerowremoved',
+ /**
+ * @event beforerowsinserted
+ * Internal UI Event. Fired before rows are inserted.
+ * @param {Ext.grid.GridView} view
+ * @param {Number} firstRow The index of the first row to be inserted.
+ * @param {Number} lastRow The index of the last row to be inserted.
+ */
+ 'beforerowsinserted',
+ /**
+ * @event beforerefresh
+ * Internal UI Event. Fired before the view is refreshed.
+ * @param {Ext.grid.GridView} view
+ */
+ 'beforerefresh',
+ /**
+ * @event rowremoved
+ * Internal UI Event. Fired after a row is removed.
+ * @param {Ext.grid.GridView} view
+ * @param {Number} rowIndex The index of the row that was removed.
+ * @param {Ext.data.Record} record The Record that was removed
+ */
+ 'rowremoved',
+ /**
+ * @event rowsinserted
+ * Internal UI Event. Fired after rows are inserted.
+ * @param {Ext.grid.GridView} view
+ * @param {Number} firstRow The index of the first inserted.
+ * @param {Number} lastRow The index of the last row inserted.
+ */
+ 'rowsinserted',
+ /**
+ * @event rowupdated
+ * Internal UI Event. Fired after a row has been updated.
+ * @param {Ext.grid.GridView} view
+ * @param {Number} firstRow The index of the row updated.
+ * @param {Ext.data.record} record The Record backing the row updated.
+ */
+ 'rowupdated',
+ /**
+ * @event refresh
+ * Internal UI Event. Fired after the GridView's body has been refreshed.
+ * @param {Ext.grid.GridView} view
+ */
+ 'refresh'
+ );
+ Ext.grid.GridView.superclass.constructor.call(this);
+ },
/* -------------------------------- UI Specific ----------------------------- */
@@ -303,7 +315,7 @@ viewConfig: {
}
this.templates = ts;
- this.colRe = new RegExp("x-grid3-td-([^\\s]+)", "");
+ this.colRe = new RegExp('x-grid3-td-([^\\s]+)', '');
},
// private
@@ -350,7 +362,7 @@ viewConfig: {
this.mainBody = new E(this.scroller.dom.firstChild);
this.focusEl = new E(this.scroller.dom.childNodes[1]);
- this.focusEl.swallowEvent("click", true);
+ this.focusEl.swallowEvent('click', true);
this.resizeMarker = new E(cs[1]);
this.resizeProxy = new E(cs[2]);
@@ -375,7 +387,7 @@ viewConfig: {
*
Return the index of the grid column which contains the passed HTMLElement.
* See also {@link #findRowIndex}
* @param {HTMLElement} el The target element
- * @return The column index, or false if the target element is not within a row of this GridView.
+ * @return {Number} The column index, or false if the target element is not within a row of this GridView.
*/
findCellIndex : function(el, requiredCls){
var cell = this.findCell(el);
@@ -410,7 +422,7 @@ viewConfig: {
/**
* Return the HtmlElement representing the grid row which contains the passed element.
* @param {HTMLElement} el The target HTMLElement
- * @return The row element, or null if the target element is not within a row of this GridView.
+ * @return {HTMLElement} The row element, or null if the target element is not within a row of this GridView.
*/
findRow : function(el){
if(!el){
@@ -423,12 +435,24 @@ viewConfig: {
*
Return the index of the grid row which contains the passed HTMLElement.