X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..6b044c28b5f26fb99c86c237ffad19741c0f7f3d:/examples/ux/CheckColumn.js?ds=sidebyside diff --git a/examples/ux/CheckColumn.js b/examples/ux/CheckColumn.js index e5827ba5..5dd143ea 100644 --- a/examples/ux/CheckColumn.js +++ b/examples/ux/CheckColumn.js @@ -1,80 +1,71 @@ /*! - * Ext JS Library 3.0.0 - * Copyright(c) 2006-2009 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ -Ext.ns('Ext.ux.grid'); - -/** - * @class Ext.ux.grid.CheckColumn - * @extends Object - * GridPanel plugin to add a column with check boxes to a grid. - *
Example usage:
- *
-// create the column
-var checkColumn = new Ext.grid.CheckColumn({
- header: 'Indoor?',
- dataIndex: 'indoor',
- id: 'check',
- width: 55
-});
-
-// add the column to the column model
-var cm = new Ext.grid.ColumnModel([{
- header: 'Foo',
- ...
- },
- checkColumn
-]);
-
-// create the grid
-var grid = new Ext.grid.EditorGridPanel({
- ...
- cm: cm,
- plugins: [checkColumn], // include plugin
- ...
-});
- *
- * In addition to storing a Boolean value within the record data, this
- * class toggles a css class between 'x-grid3-check-col' and
- * 'x-grid3-check-col-on' to alter the background image used for
- * a column.
- */
-Ext.ux.grid.CheckColumn = function(config){
- Ext.apply(this, config);
- if(!this.id){
- this.id = Ext.id();
- }
- this.renderer = this.renderer.createDelegate(this);
-};
-
-Ext.ux.grid.CheckColumn.prototype ={
- init : function(grid){
- this.grid = grid;
- this.grid.on('render', function(){
- var view = this.grid.getView();
- view.mainBody.on('mousedown', this.onMouseDown, this);
- }, this);
- },
-
- onMouseDown : function(e, t){
- if(t.className && t.className.indexOf('x-grid3-cc-'+this.id) != -1){
- e.stopEvent();
- var index = this.grid.getView().findRowIndex(t);
- var record = this.grid.store.getAt(index);
- record.set(this.dataIndex, !record.data[this.dataIndex]);
- }
- },
-
- renderer : function(v, p, record){
- p.css += ' x-grid3-check-col-td';
- return 'A Column subclass which renders a checkbox in each column cell which toggles the truthiness of the associated data field on click.
+ *Note. As of ExtJS 3.3 this no longer has to be configured as a plugin of the GridPanel.
+ *Example usage:
+ *
+var cm = new Ext.grid.ColumnModel([{
+ header: 'Foo',
+ ...
+ },{
+ xtype: 'checkcolumn',
+ header: 'Indoor?',
+ dataIndex: 'indoor',
+ width: 55
+ }
+]);
+
+// create the grid
+var grid = new Ext.grid.EditorGridPanel({
+ ...
+ colModel: cm,
+ ...
+});
+ *
+ * In addition to toggling a Boolean value within the record data, this
+ * class toggles a css class between 'x-grid3-check-col' and
+ * 'x-grid3-check-col-on' to alter the background image used for
+ * a column.
+ */
+Ext.ux.grid.CheckColumn = Ext.extend(Ext.grid.Column, {
+
+ /**
+ * @private
+ * Process and refire events routed from the GridView's processEvent method.
+ */
+ processEvent : function(name, e, grid, rowIndex, colIndex){
+ if (name == 'mousedown') {
+ var record = grid.store.getAt(rowIndex);
+ record.set(this.dataIndex, !record.data[this.dataIndex]);
+ return false; // Cancel row selection.
+ } else {
+ return Ext.grid.ActionColumn.superclass.processEvent.apply(this, arguments);
+ }
+ },
+
+ renderer : function(v, p, record){
+ p.css += ' x-grid3-check-col-td';
+ return String.format('