don't run this part unless there are enough children

Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/25fd919d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/25fd919d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/25fd919d

Branch: refs/heads/develop
Commit: 25fd919dd1a081dda3b36f21b2ce8695069009ed
Parents: a77e7f9
Author: Alex Harui <[email protected]>
Authored: Fri Jan 23 12:21:23 2015 -0800
Committer: Alex Harui <[email protected]>
Committed: Fri Jan 23 12:24:05 2015 -0800

----------------------------------------------------------------------
 .../layouts/OneFlexibleChildVerticalLayout.as   | 251 ++++++++++---------
 1 file changed, 127 insertions(+), 124 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/25fd919d/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
----------------------------------------------------------------------
diff --git 
a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
 
b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
index 50c1d81..2a0ad3c 100644
--- 
a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
+++ 
b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
@@ -218,60 +218,129 @@ package org.apache.flex.html.beads.layouts
                 horizontalMargins[i] = { marginLeft: ml, marginRight: mr, 
halign: halign };
             }
 
-            for (i = n - 1; i > flexChildIndex; i--)
-                       {
-                               child = contentView.getElementAt(i) as IUIBase;
-                               margin = 
ValuesManager.valuesImpl.getValue(child, "margin");
-                               if (margin is Array)
-                               {
-                                       if (margin.length == 1)
-                                               marginLeft = marginTop = 
marginRight = marginBottom = margin[0];
-                                       else if (margin.length <= 3)
-                                       {
-                                               marginLeft = marginRight = 
margin[1];
-                                               marginTop = marginBottom = 
margin[0];
-                                       }
-                                       else if (margin.length == 4)
-                                       {
-                                               marginLeft = margin[3];
-                                               marginBottom = margin[2];
-                                               marginRight = margin[1];
-                                               marginTop = margin[0];          
                        
-                                       }
-                               }
-                               else if (margin == null)
-                               {
-                                       marginLeft = 
ValuesManager.valuesImpl.getValue(child, "margin-left");
-                                       marginTop = 
ValuesManager.valuesImpl.getValue(child, "margin-top");
-                                       marginRight = 
ValuesManager.valuesImpl.getValue(child, "margin-right");
-                                       marginBottom = 
ValuesManager.valuesImpl.getValue(child, "margin-bottom");
-                               }
-                               else
-                               {
-                                       marginLeft = marginTop = marginBottom = 
marginRight = margin;
-                               }
-                               mt = Number(marginTop);
-                               if (isNaN(mt))
-                                       mt = 0;
-                               mb = Number(marginBottom);
-                               if (isNaN(mb))
-                                       mb = 0;
-                               if (marginLeft == "auto")
-                                       ml = 0;
-                               else
-                               {
-                                       ml = Number(marginLeft);
-                                       if (isNaN(ml))
-                                               ml = 0;
-                               }
-                               if (marginRight == "auto")
-                                       mr = 0;
-                               else
-                               {
-                                       mr = Number(marginRight);
-                                       if (isNaN(mr))
-                                               mr = 0;
-                               }
+            if (n > 0 && n > flexChildIndex)
+            {
+                for (i = n - 1; i > flexChildIndex; i--)
+                       {
+                               child = contentView.getElementAt(i) as IUIBase;
+                               margin = 
ValuesManager.valuesImpl.getValue(child, "margin");
+                               if (margin is Array)
+                               {
+                                       if (margin.length == 1)
+                                               marginLeft = marginTop = 
marginRight = marginBottom = margin[0];
+                                       else if (margin.length <= 3)
+                                       {
+                                               marginLeft = marginRight = 
margin[1];
+                                               marginTop = marginBottom = 
margin[0];
+                                       }
+                                       else if (margin.length == 4)
+                                       {
+                                               marginLeft = margin[3];
+                                               marginBottom = margin[2];
+                                               marginRight = margin[1];
+                                               marginTop = margin[0];          
                        
+                                       }
+                               }
+                               else if (margin == null)
+                               {
+                                       marginLeft = 
ValuesManager.valuesImpl.getValue(child, "margin-left");
+                                       marginTop = 
ValuesManager.valuesImpl.getValue(child, "margin-top");
+                                       marginRight = 
ValuesManager.valuesImpl.getValue(child, "margin-right");
+                                       marginBottom = 
ValuesManager.valuesImpl.getValue(child, "margin-bottom");
+                               }
+                               else
+                               {
+                                       marginLeft = marginTop = marginBottom = 
marginRight = margin;
+                               }
+                               mt = Number(marginTop);
+                               if (isNaN(mt))
+                                       mt = 0;
+                               mb = Number(marginBottom);
+                               if (isNaN(mb))
+                                       mb = 0;
+                               if (marginLeft == "auto")
+                                       ml = 0;
+                               else
+                               {
+                                       ml = Number(marginLeft);
+                                       if (isNaN(ml))
+                                               ml = 0;
+                               }
+                               if (marginRight == "auto")
+                                       mr = 0;
+                               else
+                               {
+                                       mr = Number(marginRight);
+                                       if (isNaN(mr))
+                                               mr = 0;
+                               }
+                    child.x = ml;
+                    if (child is ILayoutChild)
+                    {
+                        ilc = child as ILayoutChild;
+                        if (!isNaN(ilc.percentWidth))
+                            ilc.setWidth(contentView.width * ilc.percentWidth 
/ 100, true);
+                    }
+                    maxWidth = Math.max(maxWidth, ml + child.width + mr);
+                    child.y = hh - child.height - mb;
+                               hh -= child.height + mt + mb;
+                               lastmt = mt;
+                    halign = ValuesManager.valuesImpl.getValue(child, 
"horizontal-align");
+                    horizontalMargins[i] = { marginLeft: ml, marginRight: mr, 
halign: halign };
+                       }
+            
+                child = contentView.getElementAt(flexChildIndex) as IUIBase;
+                margin = ValuesManager.valuesImpl.getValue(child, "margin");
+                if (margin is Array)
+                {
+                    if (margin.length == 1)
+                        marginLeft = marginTop = marginRight = marginBottom = 
margin[0];
+                    else if (margin.length <= 3)
+                    {
+                        marginLeft = marginRight = margin[1];
+                        marginTop = marginBottom = margin[0];
+                    }
+                    else if (margin.length == 4)
+                    {
+                        marginLeft = margin[3];
+                        marginBottom = margin[2];
+                        marginRight = margin[1];
+                        marginTop = margin[0];                                 
+                    }
+                }
+                else if (margin == null)
+                {
+                    marginLeft = ValuesManager.valuesImpl.getValue(child, 
"margin-left");
+                    marginTop = ValuesManager.valuesImpl.getValue(child, 
"margin-top");
+                    marginRight = ValuesManager.valuesImpl.getValue(child, 
"margin-right");
+                    marginBottom = ValuesManager.valuesImpl.getValue(child, 
"margin-bottom");
+                }
+                else
+                {
+                    marginLeft = marginTop = marginBottom = marginRight = 
margin;
+                }
+                mt = Number(marginTop);
+                if (isNaN(mt))
+                    mt = 0;
+                mb = Number(marginBottom);
+                if (isNaN(mb))
+                    mb = 0;
+                if (marginLeft == "auto")
+                    ml = 0;
+                else
+                {
+                    ml = Number(marginLeft);
+                    if (isNaN(ml))
+                        ml = 0;
+                }
+                if (marginRight == "auto")
+                    mr = 0;
+                else
+                {
+                    mr = Number(marginRight);
+                    if (isNaN(mr))
+                        mr = 0;
+                }
                 child.x = ml;
                 if (child is ILayoutChild)
                 {
@@ -280,78 +349,12 @@ package org.apache.flex.html.beads.layouts
                         ilc.setWidth(contentView.width * ilc.percentWidth / 
100, true);
                 }
                 maxWidth = Math.max(maxWidth, ml + child.width + mr);
-                child.y = hh - child.height - mb;
-                               hh -= child.height + mt + mb;
-                               lastmt = mt;
+                child.y = yy + mt;
+                child.height = hh - yy - mb;
                 halign = ValuesManager.valuesImpl.getValue(child, 
"horizontal-align");
-                horizontalMargins[i] = { marginLeft: ml, marginRight: mr, 
halign: halign };
-                       }
-            
-            child = contentView.getElementAt(flexChildIndex) as IUIBase;
-            margin = ValuesManager.valuesImpl.getValue(child, "margin");
-            if (margin is Array)
-            {
-                if (margin.length == 1)
-                    marginLeft = marginTop = marginRight = marginBottom = 
margin[0];
-                else if (margin.length <= 3)
-                {
-                    marginLeft = marginRight = margin[1];
-                    marginTop = marginBottom = margin[0];
-                }
-                else if (margin.length == 4)
-                {
-                    marginLeft = margin[3];
-                    marginBottom = margin[2];
-                    marginRight = margin[1];
-                    marginTop = margin[0];                                     
-                }
-            }
-            else if (margin == null)
-            {
-                marginLeft = ValuesManager.valuesImpl.getValue(child, 
"margin-left");
-                marginTop = ValuesManager.valuesImpl.getValue(child, 
"margin-top");
-                marginRight = ValuesManager.valuesImpl.getValue(child, 
"margin-right");
-                marginBottom = ValuesManager.valuesImpl.getValue(child, 
"margin-bottom");
+                horizontalMargins[flexChildIndex] = { marginLeft: ml, 
marginRight: mr, halign: halign };
             }
-            else
-            {
-                marginLeft = marginTop = marginBottom = marginRight = margin;
-            }
-            mt = Number(marginTop);
-            if (isNaN(mt))
-                mt = 0;
-            mb = Number(marginBottom);
-            if (isNaN(mb))
-                mb = 0;
-            if (marginLeft == "auto")
-                ml = 0;
-            else
-            {
-                ml = Number(marginLeft);
-                if (isNaN(ml))
-                    ml = 0;
-            }
-            if (marginRight == "auto")
-                mr = 0;
-            else
-            {
-                mr = Number(marginRight);
-                if (isNaN(mr))
-                    mr = 0;
-            }
-            child.x = ml;
-            if (child is ILayoutChild)
-            {
-                ilc = child as ILayoutChild;
-                if (!isNaN(ilc.percentWidth))
-                    ilc.setWidth(contentView.width * ilc.percentWidth / 100, 
true);
-            }
-            maxWidth = Math.max(maxWidth, ml + child.width + mr);
-            child.y = yy + mt;
-            child.height = hh - yy - mb;
-            halign = ValuesManager.valuesImpl.getValue(child, 
"horizontal-align");
-            horizontalMargins[flexChildIndex] = { marginLeft: ml, marginRight: 
mr, halign: halign };
-
+            
             for (i = 0; i < n; i++)
                        {
                                var obj:Object = horizontalMargins[0]

Reply via email to