[Dcmms-devel] SF.net SVN: dcmms:[1359] trunk/ms4w/apps/dcmms
Brought to you by:
maher_karim,
sdteffen
From: <sdt...@us...> - 2008-10-14 17:59:08
|
Revision: 1359 http://dcmms.svn.sourceforge.net/dcmms/?rev=1359&view=rev Author: sdteffen Date: 2008-10-14 17:58:53 +0000 (Tue, 14 Oct 2008) Log Message: ----------- More ExtJs files Modified Paths: -------------- trunk/ms4w/apps/dcmms/ChangeLog Added Paths: ----------- trunk/ms4w/apps/dcmms/htdocs/js/menu/ trunk/ms4w/apps/dcmms/htdocs/js/menu/EditableItem.js trunk/ms4w/apps/dcmms/htdocs/js/menu/RangeMenu.js Modified: trunk/ms4w/apps/dcmms/ChangeLog =================================================================== --- trunk/ms4w/apps/dcmms/ChangeLog 2008-10-14 17:47:45 UTC (rev 1358) +++ trunk/ms4w/apps/dcmms/ChangeLog 2008-10-14 17:58:53 UTC (rev 1359) @@ -1,4 +1,7 @@ 2008-10-14 Steffen Macke <sdt...@sd...> + + * htdocs/js/menu/RangeMenu.js: + * htdocs/js/menu/EditableItem.js: * htdocs/images/equals.png: * htdocs/images/greater_then.png: * htdocs/images/find.png: Added: trunk/ms4w/apps/dcmms/htdocs/js/menu/EditableItem.js =================================================================== --- trunk/ms4w/apps/dcmms/htdocs/js/menu/EditableItem.js (rev 0) +++ trunk/ms4w/apps/dcmms/htdocs/js/menu/EditableItem.js 2008-10-14 17:58:53 UTC (rev 1359) @@ -0,0 +1,53 @@ +/* + * Ext JS Library 2.2 + * Copyright(c) 2006-2008, Ext JS, LLC. + * lic...@ex... + * + * http://extjs.com/license + */ + +Ext.menu.EditableItem = Ext.extend(Ext.menu.BaseItem, { + itemCls : "x-menu-item", + hideOnClick: false, + + initComponent: function(){ + Ext.menu.EditableItem.superclass.initComponent.call(this); + this.addEvents('keyup'); + + this.editor = this.editor || new Ext.form.TextField(); + if(this.text) { + this.editor.setValue(this.text); + } + }, + + onRender: function(container){ + var s = container.createChild({ + cls: this.itemCls, + html: '<img src="' + this.icon + '" class="x-menu-item-icon" style="margin: 3px 3px 2px 2px;" />' + }); + + Ext.apply(this.config, {width: 125}); + this.editor.render(s); + + this.el = s; + this.relayEvents(this.editor.el, ["keyup"]); + + if(Ext.isGecko) { + s.setStyle('overflow', 'auto'); + } + + Ext.menu.EditableItem.superclass.onRender.call(this, container); + }, + + getValue: function(){ + return this.editor.getValue(); + }, + + setValue: function(value){ + this.editor.setValue(value); + }, + + isValid: function(preventMark){ + return this.editor.isValid(preventMark); + } +}); \ No newline at end of file Added: trunk/ms4w/apps/dcmms/htdocs/js/menu/RangeMenu.js =================================================================== --- trunk/ms4w/apps/dcmms/htdocs/js/menu/RangeMenu.js (rev 0) +++ trunk/ms4w/apps/dcmms/htdocs/js/menu/RangeMenu.js 2008-10-14 17:58:53 UTC (rev 1359) @@ -0,0 +1,87 @@ +/* + * Ext JS Library 2.2 + * Copyright(c) 2006-2008, Ext JS, LLC. + * lic...@ex... + * + * http://extjs.com/license + */ + +Ext.menu.RangeMenu = function(config){ + Ext.menu.RangeMenu.superclass.constructor.call(this, config); + + this.updateTask = new Ext.util.DelayedTask(this.fireUpdate, this); + + var cfg = this.fieldCfg; + var cls = this.fieldCls; + var fields = this.fields = Ext.applyIf(this.fields || {}, { + 'gt': new Ext.menu.EditableItem({ + icon: this.icons.gt, + editor: new cls(typeof cfg == "object" ? cfg.gt || '' : cfg) + }), + 'lt': new Ext.menu.EditableItem({ + icon: this.icons.lt, + editor: new cls(typeof cfg == "object" ? cfg.lt || '' : cfg) + }), + 'eq': new Ext.menu.EditableItem({ + icon: this.icons.eq, + editor: new cls(typeof cfg == "object" ? cfg.gt || '' : cfg) + }) + }); + this.add(fields.gt, fields.lt, '-', fields.eq); + + for(var key in fields) { + fields[key].on('keyup', this.onKeyUp.createDelegate(this, [fields[key]], true), this); + } + + this.addEvents('update'); +}; + +Ext.extend(Ext.menu.RangeMenu, Ext.menu.Menu, { + fieldCls: Ext.form.NumberField, + fieldCfg: '', + updateBuffer: 500, + icons: { + gt: '/img/small_icons/greater_then.png', + lt: '/img/small_icons/less_then.png', + eq: '/img/small_icons/equals.png' + }, + + fireUpdate: function() { + this.fireEvent("update", this); + }, + + setValue: function(data) { + for(var key in this.fields) { + this.fields[key].setValue(data[key] !== undefined ? data[key] : ''); + } + this.fireEvent("update", this); + }, + + getValue: function() { + var result = {}; + for(var key in this.fields) { + var field = this.fields[key]; + if(field.isValid() && String(field.getValue()).length > 0) { + result[key] = field.getValue(); + } + } + + return result; + }, + + onKeyUp: function(event, input, notSure, field) { + if(event.getKey() == event.ENTER && field.isValid()) { + this.hide(true); + return; + } + + if(field == this.fields.eq) { + this.fields.gt.setValue(null); + this.fields.lt.setValue(null); + } else { + this.fields.eq.setValue(null); + } + + this.updateTask.delay(this.updateBuffer); + } +}); \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |