/* * YUI Extensions 0.33 RC2 * Copyright(c) 2006, Jack Slocum. */ /** * @class YAHOO.ext.grid.CheckboxEditor * @extends YAHOO.ext.grid.CellEditor Provides a checkbox for editing boolean values. It currently has no configuration options.

For more information on using this editor, see this blog post. * @constructor * Create a new CheckboxEditor */ YAHOO.ext.grid.CheckboxEditor = function(){ var div = document.createElement('span'); div.className = 'ygrid-editor ygrid-checkbox-editor'; var cb = document.createElement('input'); cb.type = 'checkbox'; cb.setAttribute('autocomplete', 'off'); div.appendChild(cb); document.body.appendChild(div); YAHOO.ext.grid.CheckboxEditor.superclass.constructor.call(this, div); div.tabIndex = ''; cb.tabIndex = 1; this.cb = getEl(cb, true); }; YAHOO.extendX(YAHOO.ext.grid.CheckboxEditor, YAHOO.ext.grid.CellEditor); YAHOO.ext.grid.CheckboxEditor.prototype.fitToCell = function(box){ this.element.setBox(box, true); }; YAHOO.ext.grid.CheckboxEditor.prototype.setValue = function(value){ this.cb.dom.checked = (value === true || value === 'true' || value === 1 || value === '1'); }; YAHOO.ext.grid.CheckboxEditor.prototype.getValue = function(){ return this.cb.dom.checked; }; YAHOO.ext.grid.CheckboxEditor.prototype.show = function(){ this.element.show(); this.cb.focus(); }; YAHOO.ext.grid.CheckboxEditor.prototype.initEvents = function(){ var stopOnEnter = function(e){ if(e.browserEvent.keyCode == e.RETURN){ this.stopEditing(true); }else if(e.browserEvent.keyCode == e.ESC){ this.setValue(this.originalValue); this.stopEditing(true); } } this.cb.mon('keydown', stopOnEnter, this, true); this.cb.on('blur', this.stopEditing, this, true); }; YAHOO.ext.grid.CheckboxEditor.prototype.hide = function(){ try{ this.cb.dom.blur(); }catch(e){} this.element.hide(); };