+++ /dev/null
-<html>
-<head>
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
-</head>
-<body onload="prettyPrint();">
- <pre class="prettyprint lang-js">Ext.ns('Ext.ux.menu');\r
-\r
-<div id="cls-Ext.ux.menu.RangeMenu"></div>/** \r
- * @class Ext.ux.menu.RangeMenu\r
- * @extends Ext.menu.Menu\r
- * Custom implementation of Ext.menu.Menu that has preconfigured\r
- * items for gt, lt, eq.\r
- * <p><b><u>Example Usage:</u></b></p>\r
- * <pre><code> \r
-\r
- * </code></pre> \r
- */\r
-Ext.ux.menu.RangeMenu = Ext.extend(Ext.menu.Menu, {\r
-\r
- constructor : function (config) {\r
-\r
- Ext.ux.menu.RangeMenu.superclass.constructor.call(this, config);\r
-\r
- this.addEvents(\r
- <div id="event-Ext.ux.menu.RangeMenu-update"></div>/**\r
- * @event update\r
- * Fires when a filter configuration has changed\r
- * @param {Ext.ux.grid.filter.Filter} this The filter object.\r
- */\r
- 'update'\r
- );\r
- \r
- this.updateTask = new Ext.util.DelayedTask(this.fireUpdate, this);\r
- \r
- var i, len, item, cfg, Cls;\r
-\r
- for (i = 0, len = this.menuItems.length; i < len; i++) {\r
- item = this.menuItems[i];\r
- if (item !== '-') {\r
- // defaults\r
- cfg = {\r
- itemId: 'range-' + item,\r
- enableKeyEvents: true,\r
- iconCls: this.iconCls[item] || 'no-icon',\r
- listeners: {\r
- scope: this,\r
- keyup: this.onInputKeyUp\r
- }\r
- };\r
- Ext.apply(\r
- cfg,\r
- // custom configs\r
- Ext.applyIf(this.fields[item] || {}, this.fieldCfg[item]),\r
- // configurable defaults\r
- this.menuItemCfgs\r
- );\r
- Cls = cfg.fieldCls || this.fieldCls;\r
- item = this.fields[item] = new Cls(cfg);\r
- }\r
- this.add(item);\r
- }\r
- },\r
-\r
- /**\r
- * @private\r
- * called by this.updateTask\r
- */\r
- fireUpdate : function () {\r
- this.fireEvent('update', this);\r
- },\r
- \r
- <div id="method-Ext.ux.menu.RangeMenu-getValue"></div>/**\r
- * Get and return the value of the filter.\r
- * @return {String} The value of this filter\r
- */\r
- getValue : function () {\r
- var result = {}, key, field;\r
- for (key in this.fields) {\r
- field = this.fields[key];\r
- if (field.isValid() && String(field.getValue()).length > 0) {\r
- result[key] = field.getValue();\r
- }\r
- }\r
- return result;\r
- },\r
- \r
- <div id="method-Ext.ux.menu.RangeMenu-setValue"></div>/**\r
- * Set the value of this menu and fires the 'update' event.\r
- * @param {Object} data The data to assign to this menu\r
- */ \r
- setValue : function (data) {\r
- var key;\r
- for (key in this.fields) {\r
- this.fields[key].setValue(data[key] !== undefined ? data[key] : '');\r
- }\r
- this.fireEvent('update', this);\r
- },\r
-\r
- /** \r
- * @private\r
- * Handler method called when there is a keyup event on an input\r
- * item of this menu.\r
- */\r
- onInputKeyUp : function (field, e) {\r
- var k = e.getKey();\r
- if (k == e.RETURN && field.isValid()) {\r
- e.stopEvent();\r
- this.hide(true);\r
- return;\r
- }\r
- \r
- if (field == this.fields.eq) {\r
- if (this.fields.gt) {\r
- this.fields.gt.setValue(null);\r
- }\r
- if (this.fields.lt) {\r
- this.fields.lt.setValue(null);\r
- }\r
- }\r
- else {\r
- this.fields.eq.setValue(null);\r
- }\r
- \r
- // restart the timer\r
- this.updateTask.delay(this.updateBuffer);\r
- }\r
-});\r
-</pre>
-</body>
-</html>
\ No newline at end of file