Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / docs / source / AbstractManager.html
index 73d59f8..43d119c 100644 (file)
@@ -3,8 +3,8 @@
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>The source code</title>
-  <link href="../prettify/prettify.css" type="text/css" rel="stylesheet" />
-  <script type="text/javascript" src="../prettify/prettify.js"></script>
+  <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>
@@ -16,9 +16,7 @@
 </head>
 <body onload="prettyPrint(); highlight();">
   <pre class="prettyprint lang-js"><span id='Ext-AbstractManager'>/**
-</span> * @class Ext.AbstractManager
- * @extends Object
- * Base Manager class
+</span> * Base Manager class
  */
 Ext.define('Ext.AbstractManager', {
 
@@ -34,9 +32,8 @@ Ext.define('Ext.AbstractManager', {
         Ext.apply(this, config || {});
 
 <span id='Ext-AbstractManager-property-all'>        /**
-</span>         * Contains all of the items currently managed
-         * @property all
-         * @type Ext.util.MixedCollection
+</span>         * @property {Ext.util.HashMap} all
+         * Contains all of the items currently managed
          */
         this.all = Ext.create('Ext.util.HashMap');
 
@@ -47,7 +44,7 @@ Ext.define('Ext.AbstractManager', {
 </span>     * Returns an item by id.
      * For additional details see {@link Ext.util.HashMap#get}.
      * @param {String} id The id of the item
-     * @return {Mixed} The item, &lt;code&gt;undefined&lt;/code&gt; if not found.
+     * @return {Object} The item, undefined if not found.
      */
     get : function(id) {
         return this.all.get(id);
@@ -55,24 +52,32 @@ Ext.define('Ext.AbstractManager', {
 
 <span id='Ext-AbstractManager-method-register'>    /**
 </span>     * Registers an item to be managed
-     * @param {Mixed} item The item to register
+     * @param {Object} item The item to register
      */
     register: function(item) {
+        //&lt;debug&gt;
+        var all = this.all,
+            key = all.getKey(item);
+            
+        if (all.containsKey(key)) {
+            Ext.Error.raise('Registering duplicate id &quot;' + key + '&quot; with this manager');
+        }
+        //&lt;/debug&gt;
         this.all.add(item);
     },
 
 <span id='Ext-AbstractManager-method-unregister'>    /**
 </span>     * Unregisters an item by removing it from this manager
-     * @param {Mixed} item The item to unregister
+     * @param {Object} item The item to unregister
      */
     unregister: function(item) {
         this.all.remove(item);
     },
 
 <span id='Ext-AbstractManager-method-registerType'>    /**
-</span>     * &lt;p&gt;Registers a new item constructor, keyed by a type key.
+</span>     * Registers a new item constructor, keyed by a type key.
      * @param {String} type The mnemonic string by which the class may be looked up.
-     * @param {Constructor} cls The new instance class.
+     * @param {Function} cls The new instance class.
      */
     registerType : function(type, cls) {
         this.types[type] = cls;
@@ -89,17 +94,18 @@ Ext.define('Ext.AbstractManager', {
     },
 
 <span id='Ext-AbstractManager-method-create'>    /**
-</span>     * Creates and returns an instance of whatever this manager manages, based on the supplied type and config object
+</span>     * Creates and returns an instance of whatever this manager manages, based on the supplied type and
+     * config object.
      * @param {Object} config The config object
      * @param {String} defaultType If no type is discovered in the config object, we fall back to this type
-     * @return {Mixed} The instance of whatever this manager is managing
+     * @return {Object} The instance of whatever this manager is managing
      */
     create: function(config, defaultType) {
         var type        = config[this.typeName] || config.type || defaultType,
             Constructor = this.types[type];
 
         //&lt;debug&gt;
-        if (Constructor == undefined) {
+        if (Constructor === undefined) {
             Ext.Error.raise(&quot;The '&quot; + type + &quot;' type has not been registered with this manager&quot;);
         }
         //&lt;/debug&gt;
@@ -108,10 +114,12 @@ Ext.define('Ext.AbstractManager', {
     },
 
 <span id='Ext-AbstractManager-method-onAvailable'>    /**
-</span>     * Registers a function that will be called when an item with the specified id is added to the manager. This will happen on instantiation.
+</span>     * Registers a function that will be called when an item with the specified id is added to the manager.
+     * This will happen on instantiation.
      * @param {String} id The item id
      * @param {Function} fn The callback function. Called with a single parameter, the item.
-     * @param {Object} scope The scope (&lt;code&gt;this&lt;/code&gt; reference) in which the callback is executed. Defaults to the item.
+     * @param {Object} scope The scope (this reference) in which the callback is executed.
+     * Defaults to the item.
      */
     onAvailable : function(id, fn, scope){
         var all = this.all,
@@ -132,16 +140,12 @@ Ext.define('Ext.AbstractManager', {
     
 <span id='Ext-AbstractManager-method-each'>    /**
 </span>     * Executes the specified function once for each item in the collection.
-     * Returning false from the function will cease iteration.
-     * 
-     * The paramaters passed to the function are:
-     * &lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
-     * &lt;li&gt;&lt;b&gt;key&lt;/b&gt; : String&lt;p class=&quot;sub-desc&quot;&gt;The key of the item&lt;/p&gt;&lt;/li&gt;
-     * &lt;li&gt;&lt;b&gt;value&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;The value of the item&lt;/p&gt;&lt;/li&gt;
-     * &lt;li&gt;&lt;b&gt;length&lt;/b&gt; : Number&lt;p class=&quot;sub-desc&quot;&gt;The total number of items in the collection&lt;/p&gt;&lt;/li&gt;
-     * &lt;/ul&gt;&lt;/div&gt;
-     * @param {Object} fn The function to execute.
-     * @param {Object} scope The scope to execute in. Defaults to &lt;tt&gt;this&lt;/tt&gt;.
+     * @param {Function} fn The function to execute.
+     * @param {String} fn.key The key of the item
+     * @param {Number} fn.value The value of the item
+     * @param {Number} fn.length The total number of items in the collection
+     * @param {Boolean} fn.return False to cease iteration.
+     * @param {Object} scope The scope to execute in. Defaults to `this`.
      */
     each: function(fn, scope){
         this.all.each(fn, scope || this);