| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 | <!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-PluginManager'>/**</span> * Provides a registry of available Plugin classes indexed by a mnemonic code known as the Plugin's ptype. * * A plugin may be specified simply as a *config object* as long as the correct `ptype` is specified: * *     { *         ptype: 'gridviewdragdrop', *         dragText: 'Drag and drop to reorganize' *     } * * Or just use the ptype on its own: * *     'gridviewdragdrop' * * Alternatively you can instantiate the plugin with Ext.create: * *     Ext.create('Ext.grid.plugin.DragDrop', { *         dragText: 'Drag and drop to reorganize' *     }) */Ext.define('Ext.PluginManager', {    extend: 'Ext.AbstractManager',    alternateClassName: 'Ext.PluginMgr',    singleton: true,    typeName: 'ptype',<span id='Ext-PluginManager-method-create'>    /**</span>     * Creates a new Plugin from the specified config object using the config object's ptype to determine the class to     * instantiate.     * @param {Object} config A configuration object for the Plugin you wish to create.     * @param {Function} defaultType (optional) The constructor to provide the default Plugin type if the config object does not     * contain a `ptype`. (Optional if the config contains a `ptype`).     * @return {Ext.Component} The newly instantiated Plugin.     */    create : function(config, defaultType){        if (config.init) {            return config;        } else {            return Ext.createByAlias('plugin.' + (config.ptype || defaultType), config);        }        // Prior system supported Singleton plugins.        //var PluginCls = this.types[config.ptype || defaultType];        //if (PluginCls.init) {        //    return PluginCls;        //} else {        //    return new PluginCls(config);        //}    },    //create: function(plugin, defaultType) {    //    if (plugin instanceof this) {    //        return plugin;    //    } else {    //        var type, config = {};    //    //        if (Ext.isString(plugin)) {    //            type = plugin;    //        }    //        else {    //            type = plugin[this.typeName] || defaultType;    //            config = plugin;    //        }    //    //        return Ext.createByAlias('plugin.' + type, config);    //    }    //},<span id='Ext-PluginManager-method-findByType'>    /**</span>     * Returns all plugins registered with the given type. Here, 'type' refers to the type of plugin, not its ptype.     * @param {String} type The type to search for     * @param {Boolean} defaultsOnly True to only return plugins of this type where the plugin's isDefault property is     * truthy     * @return {Ext.AbstractPlugin[]} All matching plugins     */    findByType: function(type, defaultsOnly) {        var matches = [],            types   = this.types,            name,            item;        for (name in types) {            if (!types.hasOwnProperty(name)) {                continue;            }            item = types[name];            if (item.type == type && (!defaultsOnly || (defaultsOnly === true && item.isDefault))) {                matches.push(item);            }        }        return matches;    }}, function() {<span id='Ext-method-preg'>    /**</span>     * Shorthand for {@link Ext.PluginManager#registerType}     * @param {String} ptype The ptype mnemonic string by which the Plugin class     * may be looked up.     * @param {Function} cls The new Plugin class.     * @member Ext     * @method preg     */    Ext.preg = function() {        return Ext.PluginManager.registerType.apply(Ext.PluginManager, arguments);    };});</pre></body></html>
 |