X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6a7e4474cba9d8be4b2ec445e10f1691f7277c50..3789b528d8dd8aad4558e38e22d775bcab1cbd36:/src/direct/PollingProvider.js?ds=sidebyside
diff --git a/src/direct/PollingProvider.js b/src/direct/PollingProvider.js
index 04f74055..7e22ba07 100644
--- a/src/direct/PollingProvider.js
+++ b/src/direct/PollingProvider.js
@@ -1,9 +1,3 @@
-/*!
- * Ext JS Library 3.2.0
- * Copyright(c) 2006-2010 Ext JS, Inc.
- * licensing@extjs.com
- * http://www.extjs.com/license
- */
/**
* @class Ext.direct.PollingProvider
* @extends Ext.direct.JsonProvider
@@ -22,26 +16,32 @@ var pollA = new Ext.direct.PollingProvider({
type:'polling',
url: 'php/pollA.php',
});
-Ext.Direct.addProvider(pollA);
+Ext.direct.Manager.addProvider(pollA);
pollA.disconnect();
-Ext.Direct.addProvider(
+Ext.direct.Manager.addProvider(
{
type:'polling',
url: 'php/pollB.php',
id: 'pollB-provider'
}
);
-var pollB = Ext.Direct.getProvider('pollB-provider');
+var pollB = Ext.direct.Manager.getProvider('pollB-provider');
*
*/
-Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, {
- /**
- * @cfg {Number} priority
- * Priority of the request (defaults to 3). See {@link Ext.direct.Provider#priority}.
- */
- // override default priority
- priority: 3,
+Ext.define('Ext.direct.PollingProvider', {
+
+ /* Begin Definitions */
+
+ extend: 'Ext.direct.JsonProvider',
+
+ alias: 'direct.pollingprovider',
+
+ uses: ['Ext.direct.ExceptionEvent'],
+
+ requires: ['Ext.Ajax', 'Ext.util.DelayedTask'],
+
+ /* End Definitions */
/**
* @cfg {Number} interval
@@ -63,7 +63,7 @@ Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, {
// private
constructor : function(config){
- Ext.direct.PollingProvider.superclass.constructor.call(this, config);
+ this.callParent(arguments);
this.addEvents(
/**
* @event beforepoll
@@ -91,28 +91,32 @@ Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, {
* response subscribe to the data event.
*/
connect: function(){
- if(this.url && !this.pollTask){
- this.pollTask = Ext.TaskMgr.start({
+ var me = this, url = me.url;
+
+ if (url && !me.pollTask) {
+ me.pollTask = Ext.TaskManager.start({
run: function(){
- if(this.fireEvent('beforepoll', this) !== false){
- if(typeof this.url == 'function'){
- this.url(this.baseParams);
- }else{
+ if (me.fireEvent('beforepoll', me) !== false) {
+ if (Ext.isFunction(url)) {
+ url(me.baseParams);
+ } else {
Ext.Ajax.request({
- url: this.url,
- callback: this.onData,
- scope: this,
- params: this.baseParams
+ url: url,
+ callback: me.onData,
+ scope: me,
+ params: me.baseParams
});
}
}
},
- interval: this.interval,
- scope: this
+ interval: me.interval,
+ scope: me
});
- this.fireEvent('connect', this);
- }else if(!this.url){
- throw 'Error initializing PollingProvider, no url configured.';
+ me.fireEvent('connect', me);
+ } else if (!url) {
+ //
+ Ext.Error.raise('Error initializing PollingProvider, no url configured.');
+ //
}
},
@@ -121,31 +125,34 @@ Ext.direct.PollingProvider = Ext.extend(Ext.direct.JsonProvider, {
* event will be fired on a successful disconnect.
*/
disconnect: function(){
- if(this.pollTask){
- Ext.TaskMgr.stop(this.pollTask);
- delete this.pollTask;
- this.fireEvent('disconnect', this);
+ var me = this;
+
+ if (me.pollTask) {
+ Ext.TaskManager.stop(me.pollTask);
+ delete me.pollTask;
+ me.fireEvent('disconnect', me);
}
},
// private
- onData: function(opt, success, xhr){
- if(success){
- var events = this.getEvents(xhr);
- for(var i = 0, len = events.length; i < len; i++){
- var e = events[i];
- this.fireEvent('data', this, e);
+ onData: function(opt, success, response){
+ var me = this,
+ i = 0,
+ len,
+ events;
+
+ if (success) {
+ events = me.createEvents(response);
+ for (len = events.length; i < len; ++i) {
+ me.fireEvent('data', me, events[i]);
}
- }else{
- var e = new Ext.Direct.ExceptionEvent({
- data: e,
- code: Ext.Direct.exceptions.TRANSPORT,
+ } else {
+ me.fireEvent('data', me, Ext.create('Ext.direct.ExceptionEvent', {
+ data: null,
+ code: Ext.direct.Manager.self.exceptions.TRANSPORT,
message: 'Unable to connect to the server.',
- xhr: xhr
- });
- this.fireEvent('data', this, e);
+ xhr: response
+ }));
}
}
-});
-
-Ext.Direct.PROVIDERS['polling'] = Ext.direct.PollingProvider;
\ No newline at end of file
+});
\ No newline at end of file