X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..6a7e4474cba9d8be4b2ec445e10f1691f7277c50:/examples/ux/gridfilters/filter/Filter.js diff --git a/examples/ux/gridfilters/filter/Filter.js b/examples/ux/gridfilters/filter/Filter.js index 76c0665c..532ba109 100644 --- a/examples/ux/gridfilters/filter/Filter.js +++ b/examples/ux/gridfilters/filter/Filter.js @@ -1,185 +1,185 @@ /*! - * Ext JS Library 3.1.1 - * Copyright(c) 2006-2010 Ext JS, LLC + * Ext JS Library 3.2.0 + * Copyright(c) 2006-2010 Ext JS, Inc. * licensing@extjs.com * http://www.extjs.com/license */ -Ext.namespace('Ext.ux.grid.filter'); - -/** - * @class Ext.ux.grid.filter.Filter - * @extends Ext.util.Observable - * Abstract base class for filter implementations. - */ -Ext.ux.grid.filter.Filter = Ext.extend(Ext.util.Observable, { - /** - * @cfg {Boolean} active - * Indicates the initial status of the filter (defaults to false). - */ - active : false, - /** - * True if this filter is active. Use setActive() to alter after configuration. - * @type Boolean - * @property active - */ - /** - * @cfg {String} dataIndex - * The {@link Ext.data.Store} dataIndex of the field this filter represents. - * The dataIndex does not actually have to exist in the store. - */ - dataIndex : null, - /** - * The filter configuration menu that will be installed into the filter submenu of a column menu. - * @type Ext.menu.Menu - * @property - */ - menu : null, - /** - * @cfg {Number} updateBuffer - * Number of milliseconds to wait after user interaction to fire an update. Only supported - * by filters: 'list', 'numeric', and 'string'. Defaults to 500. - */ - updateBuffer : 500, - - constructor : function (config) { - Ext.apply(this, config); - - this.addEvents( - /** - * @event activate - * Fires when an inactive filter becomes active - * @param {Ext.ux.grid.filter.Filter} this - */ - 'activate', - /** - * @event deactivate - * Fires when an active filter becomes inactive - * @param {Ext.ux.grid.filter.Filter} this - */ - 'deactivate', - /** - * @event serialize - * Fires after the serialization process. Use this to attach additional parameters to serialization - * data before it is encoded and sent to the server. - * @param {Array/Object} data A map or collection of maps representing the current filter configuration. - * @param {Ext.ux.grid.filter.Filter} filter The filter being serialized. - */ - 'serialize', - /** - * @event update - * Fires when a filter configuration has changed - * @param {Ext.ux.grid.filter.Filter} this The filter object. - */ - 'update' - ); - Ext.ux.grid.filter.Filter.superclass.constructor.call(this); - - this.menu = new Ext.menu.Menu(); - this.init(config); - if(config && config.value){ - this.setValue(config.value); - this.setActive(config.active !== false, true); - delete config.value; - } - }, - - /** - * Destroys this filter by purging any event listeners, and removing any menus. - */ - destroy : function(){ - if (this.menu){ - this.menu.destroy(); - } - this.purgeListeners(); - }, - - /** - * Template method to be implemented by all subclasses that is to - * initialize the filter and install required menu items. - * Defaults to Ext.emptyFn. - */ - init : Ext.emptyFn, - - /** - * Template method to be implemented by all subclasses that is to - * get and return the value of the filter. - * Defaults to Ext.emptyFn. - * @return {Object} The 'serialized' form of this filter - * @methodOf Ext.ux.grid.filter.Filter - */ - getValue : Ext.emptyFn, - - /** - * Template method to be implemented by all subclasses that is to - * set the value of the filter and fire the 'update' event. - * Defaults to Ext.emptyFn. - * @param {Object} data The value to set the filter - * @methodOf Ext.ux.grid.filter.Filter - */ - setValue : Ext.emptyFn, - - /** - * Template method to be implemented by all subclasses that is to - * return true if the filter has enough configuration information to be activated. - * Defaults to return true. - * @return {Boolean} - */ - isActivatable : function(){ - return true; - }, - - /** - * Template method to be implemented by all subclasses that is to - * get and return serialized filter data for transmission to the server. - * Defaults to Ext.emptyFn. - */ - getSerialArgs : Ext.emptyFn, - - /** - * Template method to be implemented by all subclasses that is to - * validates the provided Ext.data.Record against the filters configuration. - * Defaults to return true. - * @param {Ext.data.Record} record The record to validate - * @return {Boolean} true if the record is valid within the bounds - * of the filter, false otherwise. - */ - validateRecord : function(){ - return true; - }, - - /** - * Returns the serialized filter data for transmission to the server - * and fires the 'serialize' event. - * @return {Object/Array} An object or collection of objects containing - * key value pairs representing the current configuration of the filter. - * @methodOf Ext.ux.grid.filter.Filter - */ - serialize : function(){ - var args = this.getSerialArgs(); - this.fireEvent('serialize', args, this); - return args; - }, - - /** @private */ - fireUpdate : function(){ - if (this.active) { - this.fireEvent('update', this); - } - this.setActive(this.isActivatable()); - }, - - /** - * Sets the status of the filter and fires the appropriate events. - * @param {Boolean} active The new filter state. - * @param {Boolean} suppressEvent True to prevent events from being fired. - * @methodOf Ext.ux.grid.filter.Filter - */ - setActive : function(active, suppressEvent){ - if(this.active != active){ - this.active = active; - if (suppressEvent !== true) { - this.fireEvent(active ? 'activate' : 'deactivate', this); - } - } - } +Ext.namespace('Ext.ux.grid.filter'); + +/** + * @class Ext.ux.grid.filter.Filter + * @extends Ext.util.Observable + * Abstract base class for filter implementations. + */ +Ext.ux.grid.filter.Filter = Ext.extend(Ext.util.Observable, { + /** + * @cfg {Boolean} active + * Indicates the initial status of the filter (defaults to false). + */ + active : false, + /** + * True if this filter is active. Use setActive() to alter after configuration. + * @type Boolean + * @property active + */ + /** + * @cfg {String} dataIndex + * The {@link Ext.data.Store} dataIndex of the field this filter represents. + * The dataIndex does not actually have to exist in the store. + */ + dataIndex : null, + /** + * The filter configuration menu that will be installed into the filter submenu of a column menu. + * @type Ext.menu.Menu + * @property + */ + menu : null, + /** + * @cfg {Number} updateBuffer + * Number of milliseconds to wait after user interaction to fire an update. Only supported + * by filters: 'list', 'numeric', and 'string'. Defaults to 500. + */ + updateBuffer : 500, + + constructor : function (config) { + Ext.apply(this, config); + + this.addEvents( + /** + * @event activate + * Fires when an inactive filter becomes active + * @param {Ext.ux.grid.filter.Filter} this + */ + 'activate', + /** + * @event deactivate + * Fires when an active filter becomes inactive + * @param {Ext.ux.grid.filter.Filter} this + */ + 'deactivate', + /** + * @event serialize + * Fires after the serialization process. Use this to attach additional parameters to serialization + * data before it is encoded and sent to the server. + * @param {Array/Object} data A map or collection of maps representing the current filter configuration. + * @param {Ext.ux.grid.filter.Filter} filter The filter being serialized. + */ + 'serialize', + /** + * @event update + * Fires when a filter configuration has changed + * @param {Ext.ux.grid.filter.Filter} this The filter object. + */ + 'update' + ); + Ext.ux.grid.filter.Filter.superclass.constructor.call(this); + + this.menu = new Ext.menu.Menu(); + this.init(config); + if(config && config.value){ + this.setValue(config.value); + this.setActive(config.active !== false, true); + delete config.value; + } + }, + + /** + * Destroys this filter by purging any event listeners, and removing any menus. + */ + destroy : function(){ + if (this.menu){ + this.menu.destroy(); + } + this.purgeListeners(); + }, + + /** + * Template method to be implemented by all subclasses that is to + * initialize the filter and install required menu items. + * Defaults to Ext.emptyFn. + */ + init : Ext.emptyFn, + + /** + * Template method to be implemented by all subclasses that is to + * get and return the value of the filter. + * Defaults to Ext.emptyFn. + * @return {Object} The 'serialized' form of this filter + * @methodOf Ext.ux.grid.filter.Filter + */ + getValue : Ext.emptyFn, + + /** + * Template method to be implemented by all subclasses that is to + * set the value of the filter and fire the 'update' event. + * Defaults to Ext.emptyFn. + * @param {Object} data The value to set the filter + * @methodOf Ext.ux.grid.filter.Filter + */ + setValue : Ext.emptyFn, + + /** + * Template method to be implemented by all subclasses that is to + * return true if the filter has enough configuration information to be activated. + * Defaults to return true. + * @return {Boolean} + */ + isActivatable : function(){ + return true; + }, + + /** + * Template method to be implemented by all subclasses that is to + * get and return serialized filter data for transmission to the server. + * Defaults to Ext.emptyFn. + */ + getSerialArgs : Ext.emptyFn, + + /** + * Template method to be implemented by all subclasses that is to + * validates the provided Ext.data.Record against the filters configuration. + * Defaults to return true. + * @param {Ext.data.Record} record The record to validate + * @return {Boolean} true if the record is valid within the bounds + * of the filter, false otherwise. + */ + validateRecord : function(){ + return true; + }, + + /** + * Returns the serialized filter data for transmission to the server + * and fires the 'serialize' event. + * @return {Object/Array} An object or collection of objects containing + * key value pairs representing the current configuration of the filter. + * @methodOf Ext.ux.grid.filter.Filter + */ + serialize : function(){ + var args = this.getSerialArgs(); + this.fireEvent('serialize', args, this); + return args; + }, + + /** @private */ + fireUpdate : function(){ + if (this.active) { + this.fireEvent('update', this); + } + this.setActive(this.isActivatable()); + }, + + /** + * Sets the status of the filter and fires the appropriate events. + * @param {Boolean} active The new filter state. + * @param {Boolean} suppressEvent True to prevent events from being fired. + * @methodOf Ext.ux.grid.filter.Filter + */ + setActive : function(active, suppressEvent){ + if(this.active != active){ + this.active = active; + if (suppressEvent !== true) { + this.fireEvent(active ? 'activate' : 'deactivate', this); + } + } + } }); \ No newline at end of file