Upgrade to ExtJS 4.0.7 - Released 10/19/2011
[extjs.git] / src / layout / container / AbstractContainer.js
index 11d0814..7ec5758 100644 (file)
@@ -1,9 +1,23 @@
+/*
+
+This file is part of Ext JS 4
+
+Copyright (c) 2011 Sencha Inc
+
+Contact:  http://www.sencha.com/contact
+
+GNU General Public License Usage
+This file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.  Please review the following information to ensure the GNU General Public License version 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html.
+
+If you are unsure which license is appropriate for your use, please contact the sales department at http://www.sencha.com/contact.
+
+*/
 /**
  * @class Ext.layout.container.AbstractContainer
  * @extends Ext.layout.Layout
  * Please refer to sub classes documentation
+ * @private
  */
-
 Ext.define('Ext.layout.container.AbstractContainer', {
 
     /* Begin Definitions */
@@ -14,13 +28,6 @@ Ext.define('Ext.layout.container.AbstractContainer', {
 
     type: 'container',
 
-    fixedLayout: true,
-
-    // @private
-    managedHeight: true,
-    // @private
-    managedWidth: true,
-
     /**
      * @cfg {Boolean} bindToOwnerCtComponent
      * Flag to notify the ownerCt Component on afterLayout of a change
@@ -37,41 +44,10 @@ Ext.define('Ext.layout.container.AbstractContainer', {
      * @cfg {String} itemCls
      * <p>An optional extra CSS class that will be added to the container. This can be useful for adding
      * customized styles to the container or any of its children using standard CSS rules. See
-     * {@link Ext.Component}.{@link Ext.Component#ctCls ctCls} also.</p>
+     * {@link Ext.Component}.{@link Ext.Component#componentCls componentCls} also.</p>
      * </p>
      */
 
-    isManaged: function(dimension) {
-        dimension = Ext.String.capitalize(dimension);
-        var me = this,
-            child = me,
-            managed = me['managed' + dimension],
-            ancestor = me.owner.ownerCt;
-
-        if (ancestor && ancestor.layout) {
-            while (ancestor && ancestor.layout) {
-                if (managed === false || ancestor.layout['managed' + dimension] === false) {
-                    managed = false;
-                    break;
-                }
-                ancestor = ancestor.ownerCt;
-            }
-        }
-        return managed;
-    },
-
-    layout: function() {
-        var me = this,
-            owner = me.owner;
-        if (Ext.isNumber(owner.height) || owner.isViewport) {
-            me.managedHeight = false;
-        }
-        if (Ext.isNumber(owner.width) || owner.isViewport) {
-            me.managedWidth = false;
-        }
-        me.callParent(arguments);
-    },
-
     /**
     * Set the size of an item within the Container.  We should always use setCalculatedSize.
     * @private
@@ -87,28 +63,36 @@ Ext.define('Ext.layout.container.AbstractContainer', {
     /**
      * <p>Returns an array of child components either for a render phase (Performed in the beforeLayout method of the layout's
      * base class), or the layout phase (onLayout).</p>
-     * @return {Array} of child components
+     * @return {Ext.Component[]} of child components
      */
     getLayoutItems: function() {
         return this.owner && this.owner.items && this.owner.items.items || [];
     },
 
+    /**
+     * Containers should not lay out child components when collapsed.
+     */
+    beforeLayout: function() {
+        return !this.owner.collapsed && this.callParent(arguments);
+    },
+
     afterLayout: function() {
         this.owner.afterLayout(this);
     },
     /**
      * Returns the owner component's resize element.
-     * @return {Ext.core.Element}
+     * @return {Ext.Element}
      */
      getTarget: function() {
          return this.owner.getTargetEl();
      },
     /**
-     * <p>Returns the element into which rendering must take place. Defaults to the owner Container's {@link Ext.AbstractComponent#targetEl}.</p>
+     * <p>Returns the element into which rendering must take place. Defaults to the owner Container's target element.</p>
      * May be overridden in layout managers which implement an inner element.
-     * @return {Ext.core.Element}
+     * @return {Ext.Element}
      */
      getRenderTarget: function() {
          return this.owner.getTargetEl();
      }
 });
+