JsonProvider.html
2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<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>
<style type="text/css">
.highlight { display: block; background-color: #ddd; }
</style>
<script type="text/javascript">
function highlight() {
document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
}
</script>
</head>
<body onload="prettyPrint(); highlight();">
<pre class="prettyprint lang-js"><span id='Ext-direct-JsonProvider'>/**
</span> * @class Ext.direct.JsonProvider
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 */
<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 {Ext.direct.Event[]} 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 = new Ext.direct.ExceptionEvent({
data: e,
xhr: response,
code: Ext.direct.Manager.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>
</body>
</html>