X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/docs/source/JsonProvider.html diff --git a/docs/source/JsonProvider.html b/docs/source/JsonProvider.html index 88a04507..768e487f 100644 --- a/docs/source/JsonProvider.html +++ b/docs/source/JsonProvider.html @@ -1,49 +1,83 @@ - -
- -/** - * @class Ext.direct.JsonProvider - * @extends Ext.direct.Provider - */ -Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, { - parseResponse: function(xhr){ - if(!Ext.isEmpty(xhr.responseText)){ - if(typeof xhr.responseText == 'object'){ - return xhr.responseText; - } - return Ext.decode(xhr.responseText); - } - return null; - }, - - getEvents: function(xhr){ - var data = null; - try{ - data = this.parseResponse(xhr); - }catch(e){ - var event = new Ext.Direct.ExceptionEvent({ - data: e, - xhr: xhr, - code: Ext.Direct.exceptions.PARSE, - message: 'Error parsing json response: \n\n ' + data - }) - return [event]; - } - var events = []; - if(Ext.isArray(data)){ - for(var i = 0, len = data.length; i < len; i++){ - events.push(Ext.Direct.createEvent(data[i])); - } - }else{ - events.push(Ext.Direct.createEvent(data)); - } - return events; - } -});- - \ No newline at end of file +
\ No newline at end of file/** + * @class Ext.direct.JsonProvider + * @extends Ext.direct.Provider + +A base provider for communicating using JSON. This is an abstract class +and should not be instanced directly. + + * @markdown + * @abstract + */ + +Ext.define('Ext.direct.JsonProvider', { + + /* Begin Definitions */ + + extend: 'Ext.direct.Provider', + + alias: 'direct.jsonprovider', + + uses: ['Ext.direct.ExceptionEvent'], + + /* End Definitions */ + + /** + * Parse the JSON response + * @private + * @param {Object} response The XHR response object + * @return {Object} The data in the response. + */ + parseResponse: function(response){ + if (!Ext.isEmpty(response.responseText)) { + if (Ext.isObject(response.responseText)) { + return response.responseText; + } + return Ext.decode(response.responseText); + } + return null; + }, + + /** + * Creates a set of events based on the XHR response + * @private + * @param {Object} response The XHR response + * @return {Array} An array of Ext.direct.Event + */ + createEvents: function(response){ + var data = null, + events = [], + event, + i = 0, + len; + + try{ + data = this.parseResponse(response); + } catch(e) { + event = Ext.create('Ext.direct.ExceptionEvent', { + data: e, + xhr: response, + code: Ext.direct.Manager.self.exceptions.PARSE, + message: 'Error parsing json response: \n\n ' + data + }); + return [event]; + } + + if (Ext.isArray(data)) { + for (len = data.length; i < len; ++i) { + events.push(this.createEvent(data[i])); + } + } else { + events.push(this.createEvent(data)); + } + return events; + }, + + /** + * Create an event from a response object + * @param {Object} response The XHR response object + * @return {Ext.direct.Event} The event + */ + createEvent: function(response){ + return Ext.create('direct.' + response.type, response); + } +});