Upgrade to ExtJS 4.0.1 - Released 05/18/2011
[extjs.git] / docs / source / Container3.html
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="../prettify/prettify.css" type="text/css" rel="stylesheet" />
7   <script type="text/javascript" src="../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-layout-container-Container'>/**
19 </span>* @class Ext.layout.container.Container
20 * @extends Ext.layout.container.AbstractContainer
21 * @private
22 * &lt;p&gt;This class is intended to be extended or created via the &lt;tt&gt;&lt;b&gt;{@link Ext.container.Container#layout layout}&lt;/b&gt;&lt;/tt&gt;
23 * configuration property.  See &lt;tt&gt;&lt;b&gt;{@link Ext.container.Container#layout}&lt;/b&gt;&lt;/tt&gt; for additional details.&lt;/p&gt;
24 */
25 Ext.define('Ext.layout.container.Container', {
26
27     /* Begin Definitions */
28
29     extend: 'Ext.layout.container.AbstractContainer',
30     alternateClassName: 'Ext.layout.ContainerLayout',
31     
32     /* End Definitions */
33
34     layoutItem: function(item, box) {
35         box = box || {};
36         if (item.componentLayout.initialized !== true) {
37             this.setItemSize(item, box.width || item.width || undefined, box.height || item.height || undefined);
38             // item.doComponentLayout(box.width || item.width || undefined, box.height || item.height || undefined);
39         }
40     },
41
42     getLayoutTargetSize : function() {
43         var target = this.getTarget(),
44             ret;
45
46         if (target) {
47             ret = target.getViewSize();
48
49             // IE in will sometimes return a width of 0 on the 1st pass of getViewSize.
50             // Use getStyleSize to verify the 0 width, the adjustment pass will then work properly
51             // with getViewSize
52             if (Ext.isIE &amp;&amp; ret.width == 0){
53                 ret = target.getStyleSize();
54             }
55
56             ret.width -= target.getPadding('lr');
57             ret.height -= target.getPadding('tb');
58         }
59         return ret;
60     },
61
62     beforeLayout: function() {
63         if (this.owner.beforeLayout(arguments) !== false) {
64             return this.callParent(arguments);
65         }
66         else {
67             return false;
68         }
69     },
70
71     afterLayout: function() {
72         this.owner.afterLayout(arguments);
73         this.callParent(arguments);
74     },
75
76 <span id='Ext-layout-container-Container-method-getRenderedItems'>    /**
77 </span>     * @protected
78      * Returns all items that are rendered
79      * @return {Array} All matching items
80      */
81     getRenderedItems: function() {
82         var me = this,
83             target = me.getTarget(),
84             items = me.getLayoutItems(),
85             ln = items.length,
86             renderedItems = [],
87             i, item;
88
89         for (i = 0; i &lt; ln; i++) {
90             item = items[i];
91             if (item.rendered &amp;&amp; me.isValidParent(item, target, i)) {
92                 renderedItems.push(item);
93             }
94         }
95
96         return renderedItems;
97     },
98
99 <span id='Ext-layout-container-Container-method-getVisibleItems'>    /**
100 </span>     * @protected
101      * Returns all items that are both rendered and visible
102      * @return {Array} All matching items
103      */
104     getVisibleItems: function() {
105         var target   = this.getTarget(),
106             items = this.getLayoutItems(),
107             ln = items.length,
108             visibleItems = [],
109             i, item;
110
111         for (i = 0; i &lt; ln; i++) {
112             item = items[i];
113             if (item.rendered &amp;&amp; this.isValidParent(item, target, i) &amp;&amp; item.hidden !== true) {
114                 visibleItems.push(item);
115             }
116         }
117
118         return visibleItems;
119     }
120 });</pre>
121 </body>
122 </html>