| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 | 
							- <!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-ComponentLoader'>/**
 
- </span> * This class is used to load content via Ajax into a {@link Ext.Component}. In general 
 
-  * this class will not be instanced directly, rather a loader configuration will be passed to the
 
-  * constructor of the {@link Ext.Component}.
 
-  *
 
-  * ## HTML Renderer
 
-  *
 
-  * By default, the content loaded will be processed as raw html. The response text
 
-  * from the request is taken and added to the component. This can be used in
 
-  * conjunction with the {@link #scripts} option to execute any inline scripts in
 
-  * the resulting content. Using this renderer has the same effect as passing the
 
-  * {@link Ext.Component#html} configuration option.
 
-  *
 
-  * ## Data Renderer
 
-  *
 
-  * This renderer allows content to be added by using JSON data and a {@link Ext.XTemplate}.
 
-  * The content received from the response is passed to the {@link Ext.Component#update} method.
 
-  * This content is run through the attached {@link Ext.Component#tpl} and the data is added to
 
-  * the Component. Using this renderer has the same effect as using the {@link Ext.Component#data}
 
-  * configuration in conjunction with a {@link Ext.Component#tpl}.
 
-  *
 
-  * ## Component Renderer
 
-  *
 
-  * This renderer can only be used with a {@link Ext.container.Container} and subclasses. It allows for
 
-  * Components to be loaded remotely into a Container. The response is expected to be a single/series of
 
-  * {@link Ext.Component} configuration objects. When the response is received, the data is decoded
 
-  * and then passed to {@link Ext.container.Container#method-add}. Using this renderer has the same effect as specifying
 
-  * the {@link Ext.container.Container#cfg-items} configuration on a Container.
 
-  *
 
-  * ## Custom Renderer
 
-  *
 
-  * A custom function can be passed to handle any other special case, see the {@link #renderer} option.
 
-  *
 
-  * ## Example Usage
 
-  *
 
-  *     var cmp = Ext.create('Ext.Component', {
 
-  *         renderTo: Ext.getBody(),
 
-  *         tpl: '{firstName} - {lastName}',
 
-  *         loader: {
 
-  *             url: 'myPage.php',
 
-  *             renderer: 'data',
 
-  *             params: {
 
-  *                 userId: 1
 
-  *             }
 
-  *         }
 
-  *     });
 
-  *
 
-  *     // call the loader manually (or use autoLoad:true instead)
 
-  *     cmp.getLoader().load();
 
-  */
 
- Ext.define('Ext.ComponentLoader', {
 
-     /* Begin Definitions */
 
-     extend: 'Ext.ElementLoader',
 
-     statics: {
 
-         Renderer: {
 
-             Data: function(loader, response, active){
 
-                 var success = true;
 
-                 try {
 
-                     loader.getTarget().update(Ext.decode(response.responseText));
 
-                 } catch (e) {
 
-                     success = false;
 
-                 }
 
-                 return success;
 
-             },
 
-             Component: function(loader, response, active){
 
-                 var success = true,
 
-                     target = loader.getTarget(),
 
-                     items = [];
 
-                 //<debug>
 
-                 if (!target.isContainer) {
 
-                     Ext.Error.raise({
 
-                         target: target,
 
-                         msg: 'Components can only be loaded into a container'
 
-                     });
 
-                 }
 
-                 //</debug>
 
-                 try {
 
-                     items = Ext.decode(response.responseText);
 
-                 } catch (e) {
 
-                     success = false;
 
-                 }
 
-                 if (success) {
 
-                     target.suspendLayouts();
 
-                     if (active.removeAll) {
 
-                         target.removeAll();
 
-                     }
 
-                     target.add(items);
 
-                     target.resumeLayouts(true);
 
-                 }
 
-                 return success;
 
-             }
 
-         }
 
-     },
 
-     /* End Definitions */
 
- <span id='Ext-ComponentLoader-cfg-target'>    /**
 
- </span>     * @cfg {Ext.Component/String} target The target {@link Ext.Component} for the loader.
 
-      * If a string is passed it will be looked up via the id.
 
-      */
 
-     target: null,
 
- <span id='Ext-ComponentLoader-cfg-loadMask'>    /**
 
- </span>     * @cfg {Boolean/Object} loadMask True or a {@link Ext.LoadMask} configuration to enable masking during loading.
 
-      */
 
-     loadMask: false,
 
- <span id='Ext-ComponentLoader-cfg-scripts'>    /**
 
- </span>     * @cfg {Boolean} scripts True to parse any inline script tags in the response. This only used when using the html
 
-      * {@link #renderer}.
 
-      */
 
- <span id='Ext-ComponentLoader-cfg-renderer'>    /**
 
- </span>     * @cfg {String/Function} renderer
 
- The type of content that is to be loaded into, which can be one of 3 types:
 
- + **html** : Loads raw html content, see {@link Ext.Component#html}
 
- + **data** : Loads raw html content, see {@link Ext.Component#data}
 
- + **component** : Loads child {Ext.Component} instances. This option is only valid when used with a Container.
 
- Alternatively, you can pass a function which is called with the following parameters.
 
- + loader - Loader instance
 
- + response - The server response
 
- + active - The active request
 
- The function must return false is loading is not successful. Below is a sample of using a custom renderer:
 
-     new Ext.Component({
 
-         loader: {
 
-             url: 'myPage.php',
 
-             renderer: function(loader, response, active) {
 
-                 var text = response.responseText;
 
-                 loader.getTarget().update('The response is ' + text);
 
-                 return true;
 
-             }
 
-         }
 
-     });
 
-      */
 
-     renderer: 'html',
 
- <span id='Ext-ComponentLoader-method-setTarget'>    /**
 
- </span>     * Set a {Ext.Component} as the target of this loader. Note that if the target is changed,
 
-      * any active requests will be aborted.
 
-      * @param {String/Ext.Component} target The component to be the target of this loader. If a string is passed
 
-      * it will be looked up via its id.
 
-      */
 
-     setTarget: function(target){
 
-         var me = this;
 
-         if (Ext.isString(target)) {
 
-             target = Ext.getCmp(target);
 
-         }
 
-         if (me.target && me.target != target) {
 
-             me.abort();
 
-         }
 
-         me.target = target;
 
-     },
 
-     // inherit docs
 
-     removeMask: function(){
 
-         this.target.setLoading(false);
 
-     },
 
- <span id='Ext-ComponentLoader-method-addMask'>    /**
 
- </span>     * Add the mask on the target
 
-      * @private
 
-      * @param {Boolean/Object} mask The mask configuration
 
-      */
 
-     addMask: function(mask){
 
-         this.target.setLoading(mask);
 
-     },
 
-     setOptions: function(active, options){
 
-         active.removeAll = Ext.isDefined(options.removeAll) ? options.removeAll : this.removeAll;
 
-     },
 
- <span id='Ext-ComponentLoader-method-getRenderer'>    /**
 
- </span>     * Gets the renderer to use
 
-      * @private
 
-      * @param {String/Function} renderer The renderer to use
 
-      * @return {Function} A rendering function to use.
 
-      */
 
-     getRenderer: function(renderer){
 
-         if (Ext.isFunction(renderer)) {
 
-             return renderer;
 
-         }
 
-         var renderers = this.statics().Renderer;
 
-         switch (renderer) {
 
-             case 'component':
 
-                 return renderers.Component;
 
-             case 'data':
 
-                 return renderers.Data;
 
-             default:
 
-                 return Ext.ElementLoader.Renderer.Html;
 
-         }
 
-     }
 
- });
 
- </pre>
 
- </body>
 
- </html>
 
 
  |