More layout updates.

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

Branch: refs/heads/dual
Commit: 2b8464900d3a2772646ee2538e3cc3894347f120
Parents: 09a2c06
Author: Peter Ent <p...@apache.org>
Authored: Tue Apr 4 13:25:46 2017 -0400
Committer: Peter Ent <p...@apache.org>
Committed: Tue Apr 4 13:25:46 2017 -0400

----------------------------------------------------------------------
 .../flex/html/beads/layouts/ButtonBarLayout.as  | 43 ++++++++------------
 .../ButtonBarButtonItemRenderer.as              | 18 ++++++++
 .../DataGridButtonBarButtonItemRenderer.as      |  1 -
 3 files changed, 36 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2b846490/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
index 75d1ee7..0d3668d 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
@@ -31,6 +31,7 @@ package org.apache.flex.html.beads.layouts
        import org.apache.flex.core.IViewportModel;
        import org.apache.flex.core.UIBase;
        import org.apache.flex.core.ValuesManager;
+       import org.apache.flex.core.SimpleCSSStyles;
        import org.apache.flex.events.Event;
        import org.apache.flex.events.IEventDispatcher;
        import org.apache.flex.html.List;
@@ -48,7 +49,7 @@ package org.apache.flex.html.beads.layouts
         *  @playerversion AIR 2.6
         *  @productversion FlexJS 0.0
         */
-       public class ButtonBarLayout extends LayoutBase implements IBeadLayout
+       public class ButtonBarLayout extends HorizontalFlexLayout implements 
IBeadLayout
        {
                /**
                 *  constructor.
@@ -98,31 +99,13 @@ package org.apache.flex.html.beads.layouts
                        }
 
                        var n:int = contentView.numElements;
-                       var realN:int = n;
-
-                       COMPILE::JS {
-                               contentView.element.style["display"] = "flex";
-                               contentView.element.style["flex-flow"] = "row";
-                       }
-
-                       for (var j:int=0; j < n; j++)
-                       {
-                               var child:IUIBase = contentView.getElementAt(j) 
as IUIBase;
-                               if (child == null || !child.visible) realN--;
-                       }
-
-                       var xpos:Number = 0;
-                       var useWidth:Number = contentView.width / realN;
-                       var useHeight:Number = contentView.height;
 
                        for (var i:int=0; i < n; i++)
                        {
                                var ir:ISelectableItemRenderer = 
contentView.getElementAt(i) as ISelectableItemRenderer;
                                if (ir == null || !UIBase(ir).visible) continue;
+                               
                                COMPILE::SWF {
-                                       UIBase(ir).y = 0;
-                                       UIBase(ir).x = xpos;
-
                                        if (buttonWidths) {
                                                var widthValue:* = 
buttonWidths[i];
 
@@ -130,13 +113,21 @@ package org.apache.flex.html.beads.layouts
                                                        if (widthValue != null) 
UIBase(ir).width = Number(widthValue);
                                                }
                                                else if (_widthType == 
ButtonBarModel.PROPORTIONAL_WIDTHS) {
-                                                       if (widthValue != null) 
UIBase(ir).width = useWidth; // - need to replicate this for SWF side 
element.style["flex-grow"] = String(widthValue);
+                                                       if (widthValue != null) 
{
+                                                               if 
(UIBase(ir).style == null) {
+                                                                       
UIBase(ir).style = new SimpleCSSStyles();
+                                                               }
+                                                               
UIBase(ir).style.flexGrow = Number(widthValue);
+                                                       }
                                                }
                                                else if (_widthType == 
ButtonBarModel.PERCENT_WIDTHS) {
                                                        if (widthValue != null) 
UIBase(ir).percentWidth = Number(widthValue);
                                                }
                                        } else {
-                                               UIBase(ir).width = useWidth;
+                                               if (UIBase(ir).style == null) {
+                                                       UIBase(ir).style = new 
SimpleCSSStyles();
+                                               }
+                                               UIBase(ir).style.flexGrow = 1;
                                        }
                                }
 
@@ -155,13 +146,15 @@ package org.apache.flex.html.beads.layouts
                                                        if (widthValue != null) 
UIBase(ir).percentWidth = Number(widthValue);
                                                }
                                        } else {
-                                               UIBase(ir).width = useWidth;
+                                               
UIBase(ir).element.style["flex-grow"] = "1";
                                        }
+                                       
+                                       UIBase(ir).height = contentView.height;
                                }
-                               xpos += UIBase(ir).width;
                        }
 
-            return true;
+                       // now let the horizontal layout take care of things.
+                       return super.layout();
                }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2b846490/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
index 0ff21d2..214125e 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
@@ -92,6 +92,24 @@ package org.apache.flex.html.supportClasses
                }
                
                /**
+                * @private
+                */
+               override public function setWidth(value:Number, noEvent:Boolean 
= false):void
+               {
+                       super.setWidth(value, noEvent);
+                       textButton.width = value;
+               }
+               
+               /**
+                * @private
+                */
+               override public function setHeight(value:Number, 
noEvent:Boolean = false):void
+               {
+                       super.setHeight(value, noEvent);
+                       textButton.height = value;
+               }
+               
+               /**
                 *  The data to be displayed by the itemRenderer instance. For 
ButtonBarItemRenderer, the
                 *  data's string version is used as the label for the Button.
                 *

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2b846490/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
index 645a393..d05036f 100644
--- 
a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
+++ 
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
@@ -67,7 +67,6 @@ package org.apache.flex.html.supportClasses
                        if (textButton == null) {
                                textButton = new DataGridButtonBarTextButton();
                                textButton.percentWidth = 100;
-                               textButton.percentHeight = 100;
                                
                                // listen for clicks on the button and 
translate them into
                                // an itemClicked event.

Reply via email to