JsonProvider.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>The source code</title>
  6. <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  7. <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  8. <style type="text/css">
  9. .highlight { display: block; background-color: #ddd; }
  10. </style>
  11. <script type="text/javascript">
  12. function highlight() {
  13. document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
  14. }
  15. </script>
  16. </head>
  17. <body onload="prettyPrint(); highlight();">
  18. <pre class="prettyprint lang-js"><span id='Ext-direct-JsonProvider'>/**
  19. </span> * @class Ext.direct.JsonProvider
  20. A base provider for communicating using JSON. This is an abstract class
  21. and should not be instanced directly.
  22. * @markdown
  23. * @abstract
  24. */
  25. Ext.define('Ext.direct.JsonProvider', {
  26. /* Begin Definitions */
  27. extend: 'Ext.direct.Provider',
  28. alias: 'direct.jsonprovider',
  29. uses: ['Ext.direct.ExceptionEvent'],
  30. /* End Definitions */
  31. <span id='Ext-direct-JsonProvider-method-parseResponse'> /**
  32. </span> * Parse the JSON response
  33. * @private
  34. * @param {Object} response The XHR response object
  35. * @return {Object} The data in the response.
  36. */
  37. parseResponse: function(response){
  38. if (!Ext.isEmpty(response.responseText)) {
  39. if (Ext.isObject(response.responseText)) {
  40. return response.responseText;
  41. }
  42. return Ext.decode(response.responseText);
  43. }
  44. return null;
  45. },
  46. <span id='Ext-direct-JsonProvider-method-createEvents'> /**
  47. </span> * Creates a set of events based on the XHR response
  48. * @private
  49. * @param {Object} response The XHR response
  50. * @return {Ext.direct.Event[]} An array of Ext.direct.Event
  51. */
  52. createEvents: function(response){
  53. var data = null,
  54. events = [],
  55. event,
  56. i = 0,
  57. len;
  58. try{
  59. data = this.parseResponse(response);
  60. } catch(e) {
  61. event = new Ext.direct.ExceptionEvent({
  62. data: e,
  63. xhr: response,
  64. code: Ext.direct.Manager.exceptions.PARSE,
  65. message: 'Error parsing json response: \n\n ' + data
  66. });
  67. return [event];
  68. }
  69. if (Ext.isArray(data)) {
  70. for (len = data.length; i &lt; len; ++i) {
  71. events.push(this.createEvent(data[i]));
  72. }
  73. } else {
  74. events.push(this.createEvent(data));
  75. }
  76. return events;
  77. },
  78. <span id='Ext-direct-JsonProvider-method-createEvent'> /**
  79. </span> * Create an event from a response object
  80. * @param {Object} response The XHR response object
  81. * @return {Ext.direct.Event} The event
  82. */
  83. createEvent: function(response){
  84. return Ext.create('direct.' + response.type, response);
  85. }
  86. });</pre>
  87. </body>
  88. </html>