Upgrade to ExtJS 3.1.0 - Released 12/16/2009
[extjs.git] / src / direct / JsonProvider.js
1 /*!
2  * Ext JS Library 3.1.0
3  * Copyright(c) 2006-2009 Ext JS, LLC
4  * licensing@extjs.com
5  * http://www.extjs.com/license
6  */
7 /**\r
8  * @class Ext.direct.JsonProvider\r
9  * @extends Ext.direct.Provider\r
10  */\r
11 Ext.direct.JsonProvider = Ext.extend(Ext.direct.Provider, {\r
12     parseResponse: function(xhr){\r
13         if(!Ext.isEmpty(xhr.responseText)){\r
14             if(typeof xhr.responseText == 'object'){\r
15                 return xhr.responseText;\r
16             }\r
17             return Ext.decode(xhr.responseText);\r
18         }\r
19         return null;\r
20     },\r
21 \r
22     getEvents: function(xhr){\r
23         var data = null;\r
24         try{\r
25             data = this.parseResponse(xhr);\r
26         }catch(e){\r
27             var event = new Ext.Direct.ExceptionEvent({\r
28                 data: e,\r
29                 xhr: xhr,\r
30                 code: Ext.Direct.exceptions.PARSE,\r
31                 message: 'Error parsing json response: \n\n ' + data\r
32             })\r
33             return [event];\r
34         }\r
35         var events = [];\r
36         if(Ext.isArray(data)){\r
37             for(var i = 0, len = data.length; i < len; i++){\r
38                 events.push(Ext.Direct.createEvent(data[i]));\r
39             }\r
40         }else{\r
41             events.push(Ext.Direct.createEvent(data));\r
42         }\r
43         return events;\r
44     }\r
45 });