From af9eeb02b0e2c8b7060b2d8315bd1ef51bc666ba Mon Sep 17 00:00:00 2001 From: Damien Churchill Date: Sat, 20 Mar 2010 11:02:13 +0000 Subject: [PATCH] rename Deluge.Events to Deluge.EventsManager --- deluge/ui/web/js/deluge-all/.build | 2 +- deluge/ui/web/js/deluge-all/Deluge.Events.js | 127 ------------------ .../web/js/deluge-all/Deluge.EventsManager.js | 124 +++++++++++++++++ deluge/ui/web/server.py | 2 +- 4 files changed, 126 insertions(+), 129 deletions(-) delete mode 100644 deluge/ui/web/js/deluge-all/Deluge.Events.js create mode 100644 deluge/ui/web/js/deluge-all/Deluge.EventsManager.js diff --git a/deluge/ui/web/js/deluge-all/.build b/deluge/ui/web/js/deluge-all/.build index f30131981..8002f0dda 100644 --- a/deluge/ui/web/js/deluge-all/.build +++ b/deluge/ui/web/js/deluge-all/.build @@ -4,7 +4,7 @@ add_file "Deluge.js" add_file "Deluge.Formatters.js" add_file "Deluge.Keys.js" add_file "Deluge.Menus.js" -add_file "Deluge.Events.js" +add_file "Deluge.EventsManager.js" add_file "Deluge.OptionsManager.js" add_file "Deluge.MultiOptionsManager.js" add_file "Deluge.Add.js" diff --git a/deluge/ui/web/js/deluge-all/Deluge.Events.js b/deluge/ui/web/js/deluge-all/Deluge.Events.js deleted file mode 100644 index 7c515b2ac..000000000 --- a/deluge/ui/web/js/deluge-all/Deluge.Events.js +++ /dev/null @@ -1,127 +0,0 @@ -/* -Script: Deluge.Events.js - Class for holding global events that occur within the UI. - -Copyright: - (C) Damien Churchill 2009-2010 - 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. - - In addition, as a special exception, the copyright holders give - permission to link the code of portions of this program with the OpenSSL - library. - You must obey the GNU General Public License in all respects for all of - the code used other than OpenSSL. If you modify file(s) with this - exception, you may extend this exception to your version of the file(s), - but you are not obligated to do so. If you do not wish to do so, delete - this exception statement from your version. If you delete this exception - statement from all source files in the program, then also delete it here. -*/ - -(function() { - /** - * @class Deluge.Events - *

Deluge.Events is a singleton that components of the UI can use to fire global events

- * @singleton - * Class for holding global events that occur within the UI. - */ - Deluge.Events = Ext.extend(Ext.util.Observable, { - constructor: function() { - this.toRegister = []; - this.on('login', this.onLogin, this); - Deluge.Events.superclass.constructor.call(this); - }, - - /** - * Append an event handler to this object. - */ - addListener: function(eventName, fn, scope, o) { - this.addEvents(eventName); - if (/[A-Z]/.test(eventName.substring(0, 1))) { - if (!deluge.client) { - this.toRegister.push(eventName); - } else { - deluge.client.web.register_event_listener(eventName); - } - } - Deluge.Events.superclass.addListener.call(this, eventName, fn, scope, o); - }, - - getEvents: function() { - deluge.client.web.get_events({ - success: this.onGetEventsSuccess, - failure: this.onGetEventsFailure, - scope: this - }); - }, - - /** - * Starts the EventsManager checking for events. - */ - start: function() { - Ext.each(this.toRegister, function(eventName) { - deluge.client.web.register_event_listener(eventName); - }); - this.running = true; - this.getEvents(); - }, - - /** - * Stops the EventsManager checking for events. - */ - stop: function() { - this.running = false; - }, - - // private - onLogin: function() { - this.start(); - this.on('PluginEnabledEvent', this.onPluginEnabled, this); - this.on('PluginDisabledEvent', this.onPluginDisabled, this); - }, - - onGetEventsSuccess: function(events) { - if (!events) return; - Ext.each(events, function(event) { - var name = event[0], args = event[1]; - args.splice(0, 0, name); - this.fireEvent.apply(this, args); - }, this); - if (this.running) this.getEvents(); - }, - - // private - onGetEventsFailure: function(events) { - // the request timed out so we just want to open up another - // one. - if (this.running) this.getEvents(); - } - }); - - /** - * Appends an event handler to this object (shorthand for {@link #addListener}) - * @method - */ - Deluge.Events.prototype.on = Deluge.Events.prototype.addListener - - /** - * Fires the specified event with the passed parameters (minus the - * event name). - * @method - */ - Deluge.Events.prototype.fire = Deluge.Events.prototype.fireEvent - deluge.events = new Deluge.Events(); -})(); diff --git a/deluge/ui/web/js/deluge-all/Deluge.EventsManager.js b/deluge/ui/web/js/deluge-all/Deluge.EventsManager.js new file mode 100644 index 000000000..fc4bb2210 --- /dev/null +++ b/deluge/ui/web/js/deluge-all/Deluge.EventsManager.js @@ -0,0 +1,124 @@ +/* +Script: Deluge.EventsManager.js + Class for holding global events that occur within the UI. + +Copyright: + (C) Damien Churchill 2009-2010 + 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. + + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the OpenSSL + library. + You must obey the GNU General Public License in all respects for all of + the code used other than OpenSSL. If you modify file(s) with this + exception, you may extend this exception to your version of the file(s), + but you are not obligated to do so. If you do not wish to do so, delete + this exception statement from your version. If you delete this exception + statement from all source files in the program, then also delete it here. +*/ + +/** + * @class Deluge.EventsManager + *

Deluge.EventsManager is instantated as deluge.events and can be used by components of the UI to fire global events

+ * Class for holding global events that occur within the UI. + */ +Deluge.EventsManager = Ext.extend(Ext.util.Observable, { + constructor: function() { + this.toRegister = []; + this.on('login', this.onLogin, this); + Deluge.EventsManager.superclass.constructor.call(this); + }, + + /** + * Append an event handler to this object. + */ + addListener: function(eventName, fn, scope, o) { + this.addEvents(eventName); + if (/[A-Z]/.test(eventName.substring(0, 1))) { + if (!deluge.client) { + this.toRegister.push(eventName); + } else { + deluge.client.web.register_event_listener(eventName); + } + } + Deluge.EventsManager.superclass.addListener.call(this, eventName, fn, scope, o); + }, + + getEvents: function() { + deluge.client.web.get_events({ + success: this.onGetEventsSuccess, + failure: this.onGetEventsFailure, + scope: this + }); + }, + + /** + * Starts the EventsManagerManager checking for events. + */ + start: function() { + Ext.each(this.toRegister, function(eventName) { + deluge.client.web.register_event_listener(eventName); + }); + this.running = true; + this.getEvents(); + }, + + /** + * Stops the EventsManagerManager checking for events. + */ + stop: function() { + this.running = false; + }, + + // private + onLogin: function() { + this.start(); + this.on('PluginEnabledEvent', this.onPluginEnabled, this); + this.on('PluginDisabledEvent', this.onPluginDisabled, this); + }, + + onGetEventsSuccess: function(events) { + if (!events) return; + Ext.each(events, function(event) { + var name = event[0], args = event[1]; + args.splice(0, 0, name); + this.fireEvent.apply(this, args); + }, this); + if (this.running) this.getEvents(); + }, + + // private + onGetEventsFailure: function(events) { + // the request timed out so we just want to open up another + // one. + if (this.running) this.getEvents(); + } +}); + +/** + * Appends an event handler to this object (shorthand for {@link #addListener}) + * @method + */ +Deluge.EventsManager.prototype.on = Deluge.EventsManager.prototype.addListener + +/** + * Fires the specified event with the passed parameters (minus the + * event name). + * @method + */ +Deluge.EventsManager.prototype.fire = Deluge.EventsManager.prototype.fireEvent +deluge.events = new Deluge.EventsManager(); diff --git a/deluge/ui/web/server.py b/deluge/ui/web/server.py index 4bf5cddce..f9d5f379d 100644 --- a/deluge/ui/web/server.py +++ b/deluge/ui/web/server.py @@ -338,7 +338,7 @@ class TopLevel(resource.Resource): "js/deluge-all/Deluge.js", "js/deluge-all/Deluge.Formatters.js", "js/deluge-all/Deluge.Menus.js", - "js/deluge-all/Deluge.Events.js", + "js/deluge-all/Deluge.EventsManager.js", "js/deluge-all/Deluge.OptionsManager.js", "js/deluge-all/Deluge.MultiOptionsManager.js", "js/deluge-all/Deluge.Add.js",