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