Author: damoxc
Revision: 5119
Log:
ext based Deluge.Events
Diff:
Added: trunk/deluge/ui/web/js/Deluge.Events.js
===================================================================
--- trunk/deluge/ui/web/js/Deluge.Events.js (rev 0)
+++ trunk/deluge/ui/web/js/Deluge.Events.js 2009-04-21 20:15:49 UTC (rev
5119)
@@ -0,0 +1,83 @@
+/**
+ *
+ * @script Deluge.Events.js
+ *
+ * (C) Damien Churchill 2009 <[email protected]>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, write to:
+ * The Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor
+ * Boston, MA 02110-1301, USA.
+ **
+ * @class Deluge.Events
+ * <p>Class for holding global events that occur within the UI.</p>
+ * @singleton
+ */
+Deluge.Events = {
+
+ // private
+ __events: {},
+
+ /**
+ * Fires an event, calling any listening event handlers and passing the
+ * given arguments.
+ * @param {String} name The name of the event to call.
+ * @param eventArg1 (optional)
+ * @param eventArg2 (optional)...
+ */
+ fire: function() {
+ var args = [];
+ Ext.each(arguments, function(arg) {
+ args.push(arg);
+ });
+
+ var eventName = args.shift();
+ if (!this.__events[eventName]) return;
+
+ var eventArgs = arguments;
+ Ext.each(this.__events[eventName], function(cb) {
+ try {
+ cb.fn.apply(cb.scope || this, eventArgs);
+ } catch (e) {
+ alert(e);
+ }
+ });
+ },
+
+ /**
+ * Attachs an event listener.
+ *
+ */
+ on: function(eventName, fn, scope) {
+ var e = this.__events[eventName] || new Array();
+ e.push({
+ 'fn': fn,
+ 'scope': scope
+ });
+ this.__events[eventName] = e;
+ },
+
+ /**
+ * Removes an event listener.
+ */
+ removeListener: function(eventName, fn) {
+ if (!this.__events[eventName]) return;
+ this.__events[eventName].remove(fn);
+ },
+
+ /**
+ * Alias to removeListener
+ *
+ */
+ un: this.removeListener
+};
\ No newline at end of file
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---