-<html>
-<head>
- <title>The source code</title>
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
-</head>
-<body onload="prettyPrint();">
- <pre class="prettyprint lang-js">/*!
- * Ext JS Library 3.0.3
- * Copyright(c) 2006-2009 Ext JS, LLC
- * licensing@extjs.com
- * http://www.extjs.com/license
+<!DOCTYPE html><html><head><title>Sencha Documentation Project</title><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../prettify.css" type="text/css"><link rel="stylesheet" href="../prettify_sa.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script></head><body onload="prettyPrint()"><pre class="prettyprint"><pre><span id='Ext-direct.JsonProvider'>/**
+</span> * @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
*/
-<div id="cls-Ext.direct.JsonProvider"></div>/**\r
- * @class Ext.direct.JsonProvider\r
- * @extends Ext.direct.Provider\r
- */\r
-Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, {\r
- parseResponse: function(xhr){\r
- if(!Ext.isEmpty(xhr.responseText)){\r
- if(typeof xhr.responseText == 'object'){\r
- return xhr.responseText;\r
- }\r
- return Ext.decode(xhr.responseText);\r
- }\r
- return null;\r
- },\r
-\r
- getEvents: function(xhr){\r
- var data = null;\r
- try{\r
- data = this.parseResponse(xhr);\r
- }catch(e){\r
- var event = new Ext.Direct.ExceptionEvent({\r
- data: e,\r
- xhr: xhr,\r
- code: Ext.Direct.exceptions.PARSE,\r
- message: 'Error parsing json response: \n\n ' + data\r
- })\r
- return [event];\r
- }\r
- var events = [];\r
- if(Ext.isArray(data)){\r
- for(var i = 0, len = data.length; i < len; i++){\r
- events.push(Ext.Direct.createEvent(data[i]));\r
- }\r
- }else{\r
- events.push(Ext.Direct.createEvent(data));\r
- }\r
- return events;\r
- }\r
-});</pre>
-</body>
-</html>
\ No newline at end of file
+
+Ext.define('Ext.direct.JsonProvider', {
+
+ /* Begin Definitions */
+
+ extend: 'Ext.direct.Provider',
+
+ alias: 'direct.jsonprovider',
+
+ uses: ['Ext.direct.ExceptionEvent'],
+
+ /* End Definitions */
+
+<span id='Ext-direct.JsonProvider-method-parseResponse'> /**
+</span> * 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;
+ },
+
+<span id='Ext-direct.JsonProvider-method-createEvents'> /**
+</span> * 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;
+ },
+
+<span id='Ext-direct.JsonProvider-method-createEvent'> /**
+</span> * 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);
+ }
+});</pre></pre></body></html>
\ No newline at end of file