rename Deluge.Events to Deluge.EventsManager
This commit is contained in:
parent
ff1ad9d764
commit
af9eeb02b0
|
@ -4,7 +4,7 @@ add_file "Deluge.js"
|
||||||
add_file "Deluge.Formatters.js"
|
add_file "Deluge.Formatters.js"
|
||||||
add_file "Deluge.Keys.js"
|
add_file "Deluge.Keys.js"
|
||||||
add_file "Deluge.Menus.js"
|
add_file "Deluge.Menus.js"
|
||||||
add_file "Deluge.Events.js"
|
add_file "Deluge.EventsManager.js"
|
||||||
add_file "Deluge.OptionsManager.js"
|
add_file "Deluge.OptionsManager.js"
|
||||||
add_file "Deluge.MultiOptionsManager.js"
|
add_file "Deluge.MultiOptionsManager.js"
|
||||||
add_file "Deluge.Add.js"
|
add_file "Deluge.Add.js"
|
||||||
|
|
|
@ -1,127 +0,0 @@
|
||||||
/*
|
|
||||||
Script: Deluge.Events.js
|
|
||||||
Class for holding global events that occur within the UI.
|
|
||||||
|
|
||||||
Copyright:
|
|
||||||
(C) Damien Churchill 2009-2010 <damoxc@gmail.com>
|
|
||||||
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
|
|
||||||
* <p>Deluge.Events is a singleton that components of the UI can use to fire global events</p>
|
|
||||||
* @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();
|
|
||||||
})();
|
|
|
@ -0,0 +1,124 @@
|
||||||
|
/*
|
||||||
|
Script: Deluge.EventsManager.js
|
||||||
|
Class for holding global events that occur within the UI.
|
||||||
|
|
||||||
|
Copyright:
|
||||||
|
(C) Damien Churchill 2009-2010 <damoxc@gmail.com>
|
||||||
|
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
|
||||||
|
* <p>Deluge.EventsManager is instantated as <tt>deluge.events</tt> and can be used by components of the UI to fire global events</p>
|
||||||
|
* 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();
|
|
@ -338,7 +338,7 @@ class TopLevel(resource.Resource):
|
||||||
"js/deluge-all/Deluge.js",
|
"js/deluge-all/Deluge.js",
|
||||||
"js/deluge-all/Deluge.Formatters.js",
|
"js/deluge-all/Deluge.Formatters.js",
|
||||||
"js/deluge-all/Deluge.Menus.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.OptionsManager.js",
|
||||||
"js/deluge-all/Deluge.MultiOptionsManager.js",
|
"js/deluge-all/Deluge.MultiOptionsManager.js",
|
||||||
"js/deluge-all/Deluge.Add.js",
|
"js/deluge-all/Deluge.Add.js",
|
||||||
|
|
Loading…
Reference in New Issue