If I understand the problem (which I'm not sure, since the fix you posted runs code if not Safari), you could create a OneFlexibleChildLayoutWithSafariXSupport and put your fixes with browser sniffing in there. That way folks who don't need it, don't pay for the sniffing. There might be a version of Safari some day that behaves like the other browsers.
My 2 cents, -Alex On 9/26/17, 1:25 PM, "Harbs" <harbs.li...@gmail.com> wrote: >I’m showing how to fix the “non-ForOverflow” layouts. > >The problem is that Safari handles flex layouts differently than other >browsers. > >I’d like to use the flexbox layouts and AFAICT, they need browser >sniffing to work across the board. Ideally, the browser sniffing should >be included in the layout itself, but I was not sure the best way to do >that… > >> On Sep 26, 2017, at 11:02 PM, Alex Harui <aha...@adobe.com.INVALID> >>wrote: >> >> I'm not sure if you have the exact same problem as ASDoc, but the ASDoc >> example is working fine with the "ForOverflow" layouts and no extra code >> in the app. Or are you saying ASDoc isn't working for you on some >>browser? >> >> IMO, that's the whole point of having many different flavors of layouts. >> Folks can try different ones until they find one that works. No need to >> add custom code 3 places in the app. Fixes for quirks get encapsulated >> into a PAYG variant of a base component. >> >> My 2 cents, >> -Alex >> >> On 9/26/17, 12:56 PM, "Harbs" <harbs.li...@gmail.com> wrote: >> >>> I ran into the Safari problem in my app. >>> >>> I needed to add code like this: >>> >>> var info:BrowserInfo = BrowserInfo.current(); >>> if(info.browser != "Safari" && info.formFactor.indexOf("iP") == -1){ >>> outerContainer.percentHeight = 100; >>> leftResizeThumb.percentHeight = 100; >>> } >>> >>> The components look something like this: >>> >>> <js:Container x="0" y="40" width="100%" >>> id="dockAndOuterContainer" >>> height="0%" style="align-items:stretch"> >>> <js:beads> >>> <js:OneFlexibleChildHorizontalLayout >>>flexibleChild="outerContainer"/> >>> </js:beads> >>> <components:LeftDock id="leftDock"/> >>> <js:Group visible="false" id="leftResizeThumb"> >>> </js:Group> >>> <js:Container id="outerContainer"/> >>> </js:Container >>> >>> Basically, all browsers except Safari and iOS browsers need to be set >>>to >>> 100%. Safari and iOS browsers CANNOT be set to 100%. >>> >>> I’m not sure how to generalize this code… >>> >>> I have it in three places in my app to make it behave correctly. >>> >>> I’ve been meaning to bring up this issue on the dev@ list. Sorry I >>>didn’t >>> do it sooner… ;-) >>> >>> Harbs >>> >>>> On Sep 26, 2017, at 10:44 PM, Alex Harui <aha...@adobe.com.INVALID> >>>> wrote: >>>> >>>> I just reverted ASDoc back to the "ForOverflow" layouts. ASDoc was >>>>not >>>> showing up correctly for me (Safari). Maybe flex-basis is handled >>>> differently on different browsers. We can look into it more later. >>>> >>>> Looking into this did make me glad we are changing over to "Royale" so >>>> "Flex" and "FlexJS" will not be confused with FlexBox and the flex-xxx >>>> attributes. >>>> >>>> -Alex >>>> >>>> On 7/31/17, 12:57 AM, "Harbs" <harbs.li...@gmail.com> wrote: >>>> >>>>> The only example I found was the ASDoc app. >>>>> >>>>> I switched it and it appears to work. (I pushed my changes.) >>>>> >>>>>> On Jul 31, 2017, at 7:35 AM, Alex Harui <aha...@adobe.com.INVALID> >>>>>> wrote: >>>>>> >>>>>> It will either work in the examples that use it or it won't. Try it >>>>>> and >>>>>> find out. >>>>>> >>>>>> -Alex >>>>>> >>>>>> On 7/30/17, 3:04 AM, "Harbs" <harbs.li...@gmail.com> wrote: >>>>>> >>>>>>> I think I just ran into the same issue. >>>>>>> >>>>>>> This layout seems to more-or-less do the job, but it’s kind of >>>>>>>heavy. >>>>>>> >>>>>>> I did some research into flexbox and it appear that setting >>>>>>> flex-basis >>>>>>> to >>>>>>> 0 does the job. It needs to be set on ONLY the one flexible child. >>>>>>> >>>>>>> Here’s a codepen which shows a use case. >>>>>>> >>>>>>> >>>>>>> >>>>>>>https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcod >>>>>>>ep >>>>>>> en >>>>>>> .i >>>>>>> >>>>>>> >>>>>>> >>>>>>>o%2Fjpdevries%2Fpen%2FoXxPOP&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae0 >>>>>>>8d >>>>>>> 4d >>>>>>> 73 >>>>>>> >>>>>>> >>>>>>> >>>>>>>2638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63637005881876651 >>>>>>>1& >>>>>>> sd >>>>>>> at >>>>>>> a=tSTNYANFFiQ4DMGYbAZaz0dJ9qYDYpcwP2ZoSYRIcG8%3D&reserved=0 >>>>>>> >>>>>>> >>>>>>> >>>>>>><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fco >>>>>>>de >>>>>>> pe >>>>>>> n. >>>>>>> >>>>>>> >>>>>>> >>>>>>>io%2Fjpdevries%2Fpen%2FoXxPOP&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae >>>>>>>08 >>>>>>> d4 >>>>>>> d7 >>>>>>> >>>>>>> >>>>>>> >>>>>>>32638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363700588187665 >>>>>>>11 >>>>>>> &s >>>>>>> da >>>>>>> ta=tSTNYANFFiQ4DMGYbAZaz0dJ9qYDYpcwP2ZoSYRIcG8%3D&reserved=0> >>>>>>> >>>>>>> I noticed that the OneFlexibleLayouts have code which set the >>>>>>> flex-basis >>>>>>> of the children if a percentage value is set. When setting the size >>>>>>> of >>>>>>> the one flexible child to 0% this causes the flex-basis to be set >>>>>>>to >>>>>>> 0 >>>>>>> and then the one flexible child will fit the remaining space even >>>>>>>if >>>>>>> it >>>>>>> might overflow because of its children. >>>>>>> >>>>>>> I have wasted quite a bit of time before I discovered this. I’m not >>>>>>> sure >>>>>>> whether the OneFlexibleLayout classes should be changed, or maybe >>>>>>>we >>>>>>> need >>>>>>> documentation that to fit content that might overflow, the >>>>>>>percentage >>>>>>> should be set to 0. It could be there are cases where the entire >>>>>>> OnFlexibleLayout should be fit when smaller and expand (and not >>>>>>> scroll) >>>>>>> when bigger. In that case, the current behavior might be correct. >>>>>>> >>>>>>> Thoughts? >>>>>>> Harbs >>>>>>> >>>>>>>> On May 23, 2017, at 10:16 AM, aha...@apache.org wrote: >>>>>>>> >>>>>>>> give up on trying to use FlexBox for full-screen 3-pane views. >>>>>>>> FlexBox >>>>>>>> seems more happy stretching to content size instead of clipping at >>>>>>>> the >>>>>>>> computed flex-ed size. These custom layouts will do the proper >>>>>>>> sizing >>>>>>>> >>>>>>>> >>>>>>>> Project: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Frepo&data=02%7C01%7C%7C699 >>>>>>>>bb >>>>>>>> b1 >>>>>>>> 70 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0% >>>>>>>>7C >>>>>>>> 63 >>>>>>>> 63 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>70058818766511&sdata=P%2FMkfZAwCYwpQEoCe5UGx8tW0mZaIZsMdDg6VxlaKWA% >>>>>>>>3D >>>>>>>> &r >>>>>>>> es >>>>>>>> erved=0 >>>>>>>> Commit: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fcommit%2Fbdd34d2e&data=02% >>>>>>>>7C >>>>>>>> 01 >>>>>>>> %7 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>ce >>>>>>>> e1 >>>>>>>> %7 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>C0%7C0%7C636370058818766511&sdata=QosBAau8lE4nCS7c%2F8B6GDc%2Bqa%2B >>>>>>>>pS >>>>>>>> ko >>>>>>>> P5 >>>>>>>> 5x3oji5FnI%3D&reserved=0 >>>>>>>> Tree: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Ftree%2Fbdd34d2e&data=02%7C >>>>>>>>01 >>>>>>>> %7 >>>>>>>> C% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178dece >>>>>>>>e1 >>>>>>>> %7 >>>>>>>> C0 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>%7C0%7C636370058818766511&sdata=T4CCqwtn%2FgFTmAnaI%2BuCXqtX0P75ebp >>>>>>>>KV >>>>>>>> ZO >>>>>>>> xf >>>>>>>> XOTbIE%3D&reserved=0 >>>>>>>> Diff: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fdiff%2Fbdd34d2e&data=02%7C >>>>>>>>01 >>>>>>>> %7 >>>>>>>> C% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178dece >>>>>>>>e1 >>>>>>>> %7 >>>>>>>> C0 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>%7C0%7C636370058818766511&sdata=f8WVJXc81KrLMuUgRckULYCfglNL7d%2Bfd >>>>>>>>jS >>>>>>>> bB >>>>>>>> BU >>>>>>>> 0fRo%3D&reserved=0 >>>>>>>> >>>>>>>> Branch: refs/heads/release0.8.0 >>>>>>>> Commit: bdd34d2ef4d8117fa1b222ac470482a42dbea9eb >>>>>>>> Parents: c505d67 >>>>>>>> Author: Alex Harui <aha...@apache.org> >>>>>>>> Authored: Mon May 22 10:12:02 2017 -0700 >>>>>>>> Committer: Alex Harui <aha...@apache.org> >>>>>>>> Committed: Tue May 23 00:15:56 2017 -0700 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> ...eFlexibleChildHorizontalLayoutForOverflow.as | 290 >>>>>>>> ++++++++++++++++++ >>>>>>>> ...xibleChildHorizontalLayoutLockChildHeight.as | 91 ------ >>>>>>>> ...OneFlexibleChildVerticalLayoutForOverflow.as | 291 >>>>>>>> +++++++++++++++++++ >>>>>>>> ...FlexibleChildVerticalLayoutLockChildWidth.as | 93 ------ >>>>>>>> .../Basic/src/main/resources/basic-manifest.xml | 4 +- >>>>>>>> 5 files changed, 583 insertions(+), 186 deletions(-) >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframewor >>>>>>>>ks >>>>>>>> %2 >>>>>>>> Fp >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2F >>>>>>>>be >>>>>>>> ad >>>>>>>> s% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>2Flayouts%2FOneFlexibleChildHorizontalLayoutForOverflow.as&data=02% >>>>>>>>7C >>>>>>>> 01 >>>>>>>> %7 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178de >>>>>>>>ce >>>>>>>> e1 >>>>>>>> %7 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>C0%7C0%7C636370058818766511&sdata=L7BjG%2BM7nTwguX%2BNaE5Op6BIT7XZr >>>>>>>>Eq >>>>>>>> KF >>>>>>>> op >>>>>>>> 0D%2Frc0Aw%3D&reserved=0 >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> diff --git >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildHorizontalLayoutForOverflow.as >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildHorizontalLayoutForOverflow.as >>>>>>>> new file mode 100644 >>>>>>>> index 0000000..c6abc22 >>>>>>>> --- /dev/null >>>>>>>> +++ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildHorizontalLayoutForOverflow.as >>>>>>>> @@ -0,0 +1,290 @@ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>+////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> +// >>>>>>>> +// Licensed to the Apache Software Foundation (ASF) under one or >>>>>>>> more >>>>>>>> +// contributor license agreements. See the NOTICE file >>>>>>>> distributed >>>>>>>> with >>>>>>>> +// this work for additional information regarding copyright >>>>>>>> ownership. >>>>>>>> +// The ASF licenses this file to You under the Apache License, >>>>>>>> Version 2.0 >>>>>>>> +// (the "License"); you may not use this file except in >>>>>>>>compliance >>>>>>>> with >>>>>>>> +// the License. You may obtain a copy of the License at >>>>>>>> +// >>>>>>>> +// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww >>>>>>>>.a >>>>>>>> pa >>>>>>>> ch >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3 >>>>>>>>ae >>>>>>>> 08 >>>>>>>> d4 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363700588187 >>>>>>>>66 >>>>>>>> 51 >>>>>>>> 1& >>>>>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>>>>> +// >>>>>>>> +// Unless required by applicable law or agreed to in writing, >>>>>>>> software >>>>>>>> +// distributed under the License is distributed on an "AS IS" >>>>>>>> BASIS, >>>>>>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express >>>>>>>>or >>>>>>>> implied. >>>>>>>> +// See the License for the specific language governing >>>>>>>>permissions >>>>>>>> and >>>>>>>> +// limitations under the License. >>>>>>>> +// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>+////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> +package org.apache.flex.html.beads.layouts >>>>>>>> +{ >>>>>>>> + import org.apache.flex.core.LayoutBase; >>>>>>>> + import org.apache.flex.core.IDocument; >>>>>>>> + import org.apache.flex.core.ILayoutChild; >>>>>>>> + import org.apache.flex.core.ILayoutHost; >>>>>>>> + import org.apache.flex.core.ILayoutView; >>>>>>>> + import org.apache.flex.core.ILayoutParent; >>>>>>>> + import org.apache.flex.core.IParentIUIBase; >>>>>>>> + import org.apache.flex.core.IStrand; >>>>>>>> + import org.apache.flex.core.IUIBase; >>>>>>>> + import org.apache.flex.core.ValuesManager; >>>>>>>> + import org.apache.flex.core.UIBase; >>>>>>>> + import org.apache.flex.events.Event; >>>>>>>> + import org.apache.flex.geom.Rectangle; >>>>>>>> + import org.apache.flex.utils.CSSContainerUtils; >>>>>>>> + import org.apache.flex.utils.CSSUtils; >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * The OneFlexibleChildHorizontalLayoutForOverflowis >>>>>>>> + * intended for building apps that clip >>>>>>>> + * and/or scroll the overflow, especially in a >>>>>>>> + * 3-pane view like the ASDoc examples. It does not use >>>>>>>> + * FlexBox because FlexBox wants to grow to the size >>>>>>>> + * of the content without specifying width/height on >>>>>>>> + * the flexible child. But then the children in >>>>>>>> + * the flexible child cannot use % sizing. >>>>>>>> + * This layout presumes the parent is a known size. >>>>>>>> + * >>>>>>>> + * @langversion 3.0 >>>>>>>> + * @playerversion Flash 10.2 >>>>>>>> + * @playerversion AIR 2.6 >>>>>>>> + * @productversion FlexJS 0.0 >>>>>>>> + */ >>>>>>>> + public class OneFlexibleChildHorizontalLayoutForOverflow extends >>>>>>>> LayoutBase implements IOneFlexibleChildLayout, IDocument >>>>>>>> + { >>>>>>>> + /** >>>>>>>> + * Constructor. >>>>>>>> + * >>>>>>>> + * @langversion 3.0 >>>>>>>> + * @playerversion Flash 10.2 >>>>>>>> + * @playerversion AIR 2.6 >>>>>>>> + * @productversion FlexJS 0.0 >>>>>>>> + */ >>>>>>>> + public function >>>>>>>> OneFlexibleChildHorizontalLayoutForOverflow() >>>>>>>> + { >>>>>>>> + super(); >>>>>>>> + } >>>>>>>> + >>>>>>>> + private var _flexibleChild:String; >>>>>>>> + >>>>>>>> + protected var actualChild:ILayoutChild; >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * @private >>>>>>>> + * The document. >>>>>>>> + */ >>>>>>>> + private var document:Object; >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * The id of the flexible child >>>>>>>> + * >>>>>>>> + * @langversion 3.0 >>>>>>>> + * @playerversion Flash 10.2 >>>>>>>> + * @playerversion AIR 2.6 >>>>>>>> + * @productversion FlexJS 0.0 >>>>>>>> + */ >>>>>>>> + public function get flexibleChild():String >>>>>>>> + { >>>>>>>> + return _flexibleChild; >>>>>>>> + } >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * @private >>>>>>>> + */ >>>>>>>> + public function set flexibleChild(value:String):void >>>>>>>> + { >>>>>>>> + _flexibleChild = value; >>>>>>>> + } >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * @copy org.apache.flex.core.IBeadLayout#layout >>>>>>>> + */ >>>>>>>> + COMPILE::JS >>>>>>>> + override public function layout():Boolean >>>>>>>> + { >>>>>>>> + var contentView:ILayoutView = layoutView; >>>>>>>> + >>>>>>>> + actualChild = document[flexibleChild]; >>>>>>>> + >>>>>>>> + var n:int = contentView.numElements; >>>>>>>> + if (n == 0) return false; >>>>>>>> + >>>>>>>> + for(var i:int=0; i < n; i++) { >>>>>>>> + var child:UIBase = >>>>>>>> contentView.getElementAt(i) as UIBase; >>>>>>>> + if (child.element.style["display"] != >>>>>>>> "inline-flex" && >>>>>>>> child.element.style["display"] != "none") >>>>>>>> + child.element.style["display"] >>>>>>>> = "inline-block"; >>>>>>>> + } >>>>>>>> + >>>>>>>> + var w:Number = host.width; >>>>>>>> + for(i=0; i < n; i++) { >>>>>>>> + child = contentView.getElementAt(i) as >>>>>>>> UIBase; >>>>>>>> + if (child != actualChild) >>>>>>>> + w -= child.width; >>>>>>>> + } >>>>>>>> + actualChild.width = w; >>>>>>>> + >>>>>>>> + return true; >>>>>>>> + } >>>>>>>> + >>>>>>>> + COMPILE::SWF >>>>>>>> + override public function layout():Boolean >>>>>>>> + { >>>>>>>> + var contentView:ILayoutView = layoutView; >>>>>>>> + actualChild = >>>>>>>> document.hasOwnProperty(flexibleChild) ? >>>>>>>> document[flexibleChild] : null; >>>>>>>> + >>>>>>>> + var n:Number = contentView.numElements; >>>>>>>> + if (n == 0) return false; >>>>>>>> + >>>>>>>> + var maxWidth:Number = 0; >>>>>>>> + var maxHeight:Number = 0; >>>>>>>> + var hostSizedToContent:Boolean = >>>>>>>>host.isHeightSizedToContent(); >>>>>>>> + var hostWidth:Number = host.width; >>>>>>>> + var hostHeight:Number = host.height; >>>>>>>> + >>>>>>>> + var ilc:ILayoutChild; >>>>>>>> + var data:Object; >>>>>>>> + var canAdjust:Boolean = false; >>>>>>>> + var margins:Object; >>>>>>>> + >>>>>>>> + var paddingMetrics:Rectangle = >>>>>>>> CSSContainerUtils.getPaddingMetrics(host); >>>>>>>> + var borderMetrics:Rectangle = >>>>>>>> CSSContainerUtils.getBorderMetrics(host); >>>>>>>> + >>>>>>>> + // adjust the host's usable size by the >>>>>>>> metrics. If >>>>>>>> hostSizedToContent, then the >>>>>>>> + // resulting adjusted value may be less than >>>>>>>> zero. >>>>>>>> + hostWidth -= paddingMetrics.left + >>>>>>>> paddingMetrics.right + >>>>>>>> borderMetrics.left + borderMetrics.right; >>>>>>>> + hostHeight -= paddingMetrics.top + >>>>>>>> paddingMetrics.bottom + >>>>>>>> borderMetrics.top + borderMetrics.bottom; >>>>>>>> + >>>>>>>> + var xpos:Number = borderMetrics.left + >>>>>>>> paddingMetrics.left; >>>>>>>> + var ypos:Number = borderMetrics.top + >>>>>>>> paddingMetrics.left; >>>>>>>> + var child:IUIBase; >>>>>>>> + var childHeight:Number; >>>>>>>> + var i:int; >>>>>>>> + var childYpos:Number; >>>>>>>> + var adjustLeft:Number = 0; >>>>>>>> + var adjustRight:Number = hostWidth + >>>>>>>> borderMetrics.left + >>>>>>>> paddingMetrics.left; >>>>>>>> + >>>>>>>> + // first work from left to right >>>>>>>> + for(i=0; i < n; i++) >>>>>>>> + { >>>>>>>> + child = contentView.getElementAt(i) as >>>>>>>> IUIBase; >>>>>>>> + if (child == null || !child.visible) >>>>>>>> continue; >>>>>>>> + if (child == actualChild) break; >>>>>>>> + >>>>>>>> + margins = childMargins(child, >>>>>>>> hostWidth, hostHeight); >>>>>>>> + ilc = child as ILayoutChild; >>>>>>>> + >>>>>>>> + xpos += margins.left; >>>>>>>> + >>>>>>>> + childYpos = ypos + margins.top; // >>>>>>>> default y position >>>>>>>> + >>>>>>>> + childHeight = child.height; >>>>>>>> + if (ilc != null) >>>>>>>> + { >>>>>>>> + if (!isNaN(ilc.percentHeight)) { >>>>>>>> + childHeight = >>>>>>>> host.height * ilc.percentHeight/100.0; >>>>>>>> + } >>>>>>>> + else if >>>>>>>> (isNaN(ilc.explicitHeight)) { >>>>>>>> + childHeight = >>>>>>>> host.height; >>>>>>>> + } >>>>>>>> + ilc.setHeight(childHeight); >>>>>>>> + } >>>>>>>> + >>>>>>>> + if (ilc) { >>>>>>>> + ilc.setX(xpos); >>>>>>>> + ilc.setY(childYpos); >>>>>>>> + >>>>>>>> + if (!isNaN(ilc.percentWidth)) { >>>>>>>> + ilc.setWidth(hostWidth >>>>>>>> * ilc.percentWidth / 100); >>>>>>>> + } >>>>>>>> + >>>>>>>> + } else { >>>>>>>> + child.x = xpos; >>>>>>>> + child.y = childYpos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + xpos += child.width + margins.right; >>>>>>>> + adjustLeft = xpos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + // then work from right to left >>>>>>>> + xpos = hostWidth + borderMetrics.left + >>>>>>>> paddingMetrics.left; >>>>>>>> + >>>>>>>> + for(i=(n-1); actualChild != null && i >= 0; i--) >>>>>>>> + { >>>>>>>> + child = contentView.getElementAt(i) as >>>>>>>> IUIBase; >>>>>>>> + if (child == null || !child.visible) >>>>>>>> continue; >>>>>>>> + if (child == actualChild) break; >>>>>>>> + >>>>>>>> + margins = childMargins(child, >>>>>>>> hostWidth, hostHeight); >>>>>>>> + ilc = child as ILayoutChild; >>>>>>>> + >>>>>>>> + childYpos = ypos + margins.top; // >>>>>>>> default y position >>>>>>>> + >>>>>>>> + childHeight = child.height; >>>>>>>> + if (ilc != null) >>>>>>>> + { >>>>>>>> + if (!isNaN(ilc.percentHeight)) { >>>>>>>> + childHeight = >>>>>>>> host.height * ilc.percentHeight/100.0; >>>>>>>> + } >>>>>>>> + else if >>>>>>>> (isNaN(ilc.explicitHeight)) { >>>>>>>> + childHeight = >>>>>>>> host.height; >>>>>>>> + } >>>>>>>> + ilc.setHeight(childHeight); >>>>>>>> + } >>>>>>>> + >>>>>>>> + if (ilc) { >>>>>>>> + if (!isNaN(ilc.percentWidth)) { >>>>>>>> + ilc.setWidth(hostWidth >>>>>>>> * ilc.percentWidth / 100); >>>>>>>> + } >>>>>>>> + } >>>>>>>> + >>>>>>>> + xpos -= child.width + margins.right; >>>>>>>> + >>>>>>>> + if (ilc) { >>>>>>>> + ilc.setX(xpos); >>>>>>>> + ilc.setY(childYpos); >>>>>>>> + } else { >>>>>>>> + child.x = xpos; >>>>>>>> + child.y = childYpos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + xpos -= margins.left; >>>>>>>> + adjustRight = xpos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + // now adjust the actualChild to fill the space. >>>>>>>> + if (actualChild != null) { >>>>>>>> + margins = childMargins(actualChild, >>>>>>>> hostWidth, hostHeight); >>>>>>>> + ilc = actualChild as ILayoutChild; >>>>>>>> + childHeight = actualChild.height; >>>>>>>> + if (ilc != null) >>>>>>>> + { >>>>>>>> + if (!isNaN(ilc.percentHeight)) { >>>>>>>> + childHeight = >>>>>>>> host.height * ilc.percentHeight/100.0; >>>>>>>> + } >>>>>>>> + else if >>>>>>>> (isNaN(ilc.explicitHeight)) { >>>>>>>> + childHeight = >>>>>>>> host.height; >>>>>>>> + } >>>>>>>> + ilc.setHeight(childHeight); >>>>>>>> + } >>>>>>>> + childYpos = ypos + margins.top; >>>>>>>> + actualChild.x = adjustLeft + >>>>>>>> margins.left; >>>>>>>> + actualChild.y = childYpos; >>>>>>>> + if (ilc) { >>>>>>>> + >>>>>>>> ilc.setWidth((adjustRight-margins.right) - >>>>>>>> (adjustLeft+margins.left)); >>>>>>>> + } else { >>>>>>>> + actualChild.width = >>>>>>>> (adjustRight-margins.right) - >>>>>>>> (adjustLeft+margins.left); >>>>>>>> + } >>>>>>>> + } >>>>>>>> + >>>>>>>> + return true; >>>>>>>> + } >>>>>>>> + >>>>>>>> + public function setDocument(document:Object, id:String = >>>>>>>> null):void >>>>>>>> + { >>>>>>>> + this.document = document; >>>>>>>> + } >>>>>>>> + >>>>>>>> + } >>>>>>>> + >>>>>>>> +} >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframewor >>>>>>>>ks >>>>>>>> %2 >>>>>>>> Fp >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2F >>>>>>>>be >>>>>>>> ad >>>>>>>> s% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>2Flayouts%2FOneFlexibleChildHorizontalLayoutLockChildHeight.as&data >>>>>>>>=0 >>>>>>>> 2% >>>>>>>> 7C >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>01%7C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c1 >>>>>>>>78 >>>>>>>> de >>>>>>>> ce >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>e1%7C0%7C0%7C636370058818766511&sdata=Ir1Siye21IUzzijpvWA1XmQN0AbHk >>>>>>>>tL >>>>>>>> u% >>>>>>>> 2F >>>>>>>> u3h%2BRtBZT0%3D&reserved=0 >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> diff --git >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildHorizontalLayoutLockChildHeight.as >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildHorizontalLayoutLockChildHeight.as >>>>>>>> deleted file mode 100644 >>>>>>>> index d170d23..0000000 >>>>>>>> --- >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildHorizontalLayoutLockChildHeight.as >>>>>>>> +++ /dev/null >>>>>>>> @@ -1,91 +0,0 @@ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>-////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> -// >>>>>>>> -// Licensed to the Apache Software Foundation (ASF) under one or >>>>>>>> more >>>>>>>> -// contributor license agreements. See the NOTICE file >>>>>>>> distributed >>>>>>>> with >>>>>>>> -// this work for additional information regarding copyright >>>>>>>> ownership. >>>>>>>> -// The ASF licenses this file to You under the Apache License, >>>>>>>> Version 2.0 >>>>>>>> -// (the "License"); you may not use this file except in >>>>>>>>compliance >>>>>>>> with >>>>>>>> -// the License. You may obtain a copy of the License at >>>>>>>> -// >>>>>>>> -// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww >>>>>>>>.a >>>>>>>> pa >>>>>>>> ch >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3 >>>>>>>>ae >>>>>>>> 08 >>>>>>>> d4 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363700588187 >>>>>>>>66 >>>>>>>> 51 >>>>>>>> 1& >>>>>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>>>>> -// >>>>>>>> -// Unless required by applicable law or agreed to in writing, >>>>>>>> software >>>>>>>> -// distributed under the License is distributed on an "AS IS" >>>>>>>> BASIS, >>>>>>>> -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express >>>>>>>>or >>>>>>>> implied. >>>>>>>> -// See the License for the specific language governing >>>>>>>>permissions >>>>>>>> and >>>>>>>> -// limitations under the License. >>>>>>>> -// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>-////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> -package org.apache.flex.html.beads.layouts >>>>>>>> -{ >>>>>>>> - import org.apache.flex.core.LayoutBase; >>>>>>>> - import org.apache.flex.core.IDocument; >>>>>>>> - import org.apache.flex.core.ILayoutChild; >>>>>>>> - import org.apache.flex.core.ILayoutHost; >>>>>>>> - import org.apache.flex.core.ILayoutView; >>>>>>>> - import org.apache.flex.core.ILayoutParent; >>>>>>>> - import org.apache.flex.core.IParentIUIBase; >>>>>>>> - import org.apache.flex.core.IStrand; >>>>>>>> - import org.apache.flex.core.IUIBase; >>>>>>>> - import org.apache.flex.core.ValuesManager; >>>>>>>> - import org.apache.flex.core.UIBase; >>>>>>>> - import org.apache.flex.events.Event; >>>>>>>> - import org.apache.flex.geom.Rectangle; >>>>>>>> - import org.apache.flex.utils.CSSContainerUtils; >>>>>>>> - import org.apache.flex.utils.CSSUtils; >>>>>>>> - >>>>>>>> - /** >>>>>>>> - * The OneFlexibleChildHorizontalLayoutLockChildHeight >>>>>>>> - * is a subclass of OneFlexibleChildHorizontalLayout >>>>>>>> - * that sets the flexible child's height to be the height >>>>>>>> - * of the host container. This is useful when you >>>>>>>> - * don't want the actual child's height to dictate the >>>>>>>> - * height of the container in order to force >>>>>>>> - * scrollbars >>>>>>>> - * >>>>>>>> - * @langversion 3.0 >>>>>>>> - * @playerversion Flash 10.2 >>>>>>>> - * @playerversion AIR 2.6 >>>>>>>> - * @productversion FlexJS 0.0 >>>>>>>> - */ >>>>>>>> - public class OneFlexibleChildHorizontalLayoutLockChildHeight >>>>>>>> extends >>>>>>>> OneFlexibleChildHorizontalLayout >>>>>>>> - { >>>>>>>> - /** >>>>>>>> - * Constructor. >>>>>>>> - * >>>>>>>> - * @langversion 3.0 >>>>>>>> - * @playerversion Flash 10.2 >>>>>>>> - * @playerversion AIR 2.6 >>>>>>>> - * @productversion FlexJS 0.0 >>>>>>>> - */ >>>>>>>> - public function >>>>>>>>OneFlexibleChildHorizontalLayoutLockChildHeight() >>>>>>>> - { >>>>>>>> - super(); >>>>>>>> - } >>>>>>>> - >>>>>>>> - /** >>>>>>>> - * @copy org.apache.flex.core.IBeadLayout#layout >>>>>>>> - */ >>>>>>>> - override public function layout():Boolean >>>>>>>> - { >>>>>>>> - var ret:Boolean = super.layout(); >>>>>>>> - if (ret) >>>>>>>> - { >>>>>>>> - var contentView:ILayoutView = >>>>>>>> layoutView; >>>>>>>> - >>>>>>>> - var n:int = contentView.numElements; >>>>>>>> - >>>>>>>> - var h:Number = host.height; >>>>>>>> - for(var i:int=0; i < n; i++) { >>>>>>>> - var child:UIBase = >>>>>>>> contentView.getElementAt(i) as UIBase; >>>>>>>> - if (child != actualChild) >>>>>>>> - h = child.height; >>>>>>>> - } >>>>>>>> - actualChild.setHeight(h); >>>>>>>> - } >>>>>>>> - return ret; >>>>>>>> - } >>>>>>>> - >>>>>>>> - } >>>>>>>> - >>>>>>>> -} >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframewor >>>>>>>>ks >>>>>>>> %2 >>>>>>>> Fp >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2F >>>>>>>>be >>>>>>>> ad >>>>>>>> s% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>2Flayouts%2FOneFlexibleChildVerticalLayoutForOverflow.as&data=02%7C >>>>>>>>01 >>>>>>>> %7 >>>>>>>> C% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178dece >>>>>>>>e1 >>>>>>>> %7 >>>>>>>> C0 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>%7C0%7C636370058818766511&sdata=WdJnx6IGbPwIxUibKB3UqfKTHgHugWIleqB >>>>>>>>Vs >>>>>>>> qJ >>>>>>>> 5f >>>>>>>> eE%3D&reserved=0 >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> diff --git >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildVerticalLayoutForOverflow.as >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildVerticalLayoutForOverflow.as >>>>>>>> new file mode 100644 >>>>>>>> index 0000000..5679f80 >>>>>>>> --- /dev/null >>>>>>>> +++ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildVerticalLayoutForOverflow.as >>>>>>>> @@ -0,0 +1,291 @@ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>+////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> +// >>>>>>>> +// Licensed to the Apache Software Foundation (ASF) under one or >>>>>>>> more >>>>>>>> +// contributor license agreements. See the NOTICE file >>>>>>>> distributed >>>>>>>> with >>>>>>>> +// this work for additional information regarding copyright >>>>>>>> ownership. >>>>>>>> +// The ASF licenses this file to You under the Apache License, >>>>>>>> Version 2.0 >>>>>>>> +// (the "License"); you may not use this file except in >>>>>>>>compliance >>>>>>>> with >>>>>>>> +// the License. You may obtain a copy of the License at >>>>>>>> +// >>>>>>>> +// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww >>>>>>>>.a >>>>>>>> pa >>>>>>>> ch >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3 >>>>>>>>ae >>>>>>>> 08 >>>>>>>> d4 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363700588187 >>>>>>>>66 >>>>>>>> 51 >>>>>>>> 1& >>>>>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>>>>> +// >>>>>>>> +// Unless required by applicable law or agreed to in writing, >>>>>>>> software >>>>>>>> +// distributed under the License is distributed on an "AS IS" >>>>>>>> BASIS, >>>>>>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express >>>>>>>>or >>>>>>>> implied. >>>>>>>> +// See the License for the specific language governing >>>>>>>>permissions >>>>>>>> and >>>>>>>> +// limitations under the License. >>>>>>>> +// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>+////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> +package org.apache.flex.html.beads.layouts >>>>>>>> +{ >>>>>>>> + import org.apache.flex.core.LayoutBase; >>>>>>>> + import org.apache.flex.core.IDocument; >>>>>>>> + import org.apache.flex.core.ILayoutChild; >>>>>>>> + import org.apache.flex.core.ILayoutHost; >>>>>>>> + import org.apache.flex.core.ILayoutView; >>>>>>>> + import org.apache.flex.core.ILayoutParent; >>>>>>>> + import org.apache.flex.core.IParentIUIBase; >>>>>>>> + import org.apache.flex.core.IStrand; >>>>>>>> + import org.apache.flex.core.IStyleableObject; >>>>>>>> + import org.apache.flex.core.IUIBase; >>>>>>>> + import org.apache.flex.core.ValuesManager; >>>>>>>> + import org.apache.flex.core.UIBase; >>>>>>>> + import org.apache.flex.events.Event; >>>>>>>> + import org.apache.flex.geom.Rectangle; >>>>>>>> + import org.apache.flex.utils.CSSContainerUtils; >>>>>>>> + import org.apache.flex.utils.CSSUtils; >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * The OneFlexibleChildVerticalLayoutForOverflow is >>>>>>>> + * intended for building apps that clip >>>>>>>> + * and/or scroll the overflow, especially in a >>>>>>>> + * 3-pane view like the ASDoc examples. It does not use >>>>>>>> + * FlexBox because FlexBox wants to grow to the size >>>>>>>> + * of the content without specifying width/height on >>>>>>>> + * the flexible child. But then the children in >>>>>>>> + * the flexible child cannot use % sizing. >>>>>>>> + * This layout presumes the parent is a known size. >>>>>>>> + * >>>>>>>> + * @langversion 3.0 >>>>>>>> + * @playerversion Flash 10.2 >>>>>>>> + * @playerversion AIR 2.6 >>>>>>>> + * @productversion FlexJS 0.0 >>>>>>>> + */ >>>>>>>> + public class OneFlexibleChildVerticalLayoutForOverflow extends >>>>>>>> LayoutBase implements IOneFlexibleChildLayout, IDocument >>>>>>>> + { >>>>>>>> + /** >>>>>>>> + * Constructor. >>>>>>>> + * >>>>>>>> + * @langversion 3.0 >>>>>>>> + * @playerversion Flash 10.2 >>>>>>>> + * @playerversion AIR 2.6 >>>>>>>> + * @productversion FlexJS 0.0 >>>>>>>> + */ >>>>>>>> + public function >>>>>>>> OneFlexibleChildVerticalLayoutForOverflow() >>>>>>>> + { >>>>>>>> + super(); >>>>>>>> + } >>>>>>>> + >>>>>>>> + private var _flexibleChild:String; >>>>>>>> + >>>>>>>> + protected var actualChild:ILayoutChild; >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * @private >>>>>>>> + * The document. >>>>>>>> + */ >>>>>>>> + private var document:Object; >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * The id of the flexible child >>>>>>>> + * >>>>>>>> + * @langversion 3.0 >>>>>>>> + * @playerversion Flash 10.2 >>>>>>>> + * @playerversion AIR 2.6 >>>>>>>> + * @productversion FlexJS 0.0 >>>>>>>> + */ >>>>>>>> + public function get flexibleChild():String >>>>>>>> + { >>>>>>>> + return _flexibleChild; >>>>>>>> + } >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * @private >>>>>>>> + */ >>>>>>>> + public function set flexibleChild(value:String):void >>>>>>>> + { >>>>>>>> + _flexibleChild = value; >>>>>>>> + } >>>>>>>> + >>>>>>>> + /** >>>>>>>> + * @copy org.apache.flex.core.IBeadLayout#layout >>>>>>>> + */ >>>>>>>> + COMPILE::JS >>>>>>>> + override public function layout():Boolean >>>>>>>> + { >>>>>>>> + var contentView:ILayoutView = layoutView; >>>>>>>> + >>>>>>>> + actualChild = document[flexibleChild]; >>>>>>>> + >>>>>>>> + var n:int = contentView.numElements; >>>>>>>> + if (n == 0) return false; >>>>>>>> + >>>>>>>> + for(var i:int=0; i < n; i++) { >>>>>>>> + var child:UIBase = >>>>>>>> contentView.getElementAt(i) as UIBase; >>>>>>>> + if (child.element.style["display"] != >>>>>>>> "flex" && >>>>>>>> child.element.style["display"] != "none") >>>>>>>> + child.element.style["display"] >>>>>>>> = "block"; >>>>>>>> + } >>>>>>>> + >>>>>>>> + var h:Number = host.height; >>>>>>>> + for(i=0; i < n; i++) { >>>>>>>> + child = contentView.getElementAt(i) as >>>>>>>> UIBase; >>>>>>>> + if (child != actualChild) >>>>>>>> + h -= child.height; >>>>>>>> + } >>>>>>>> + actualChild.height = h; >>>>>>>> + >>>>>>>> + return true; >>>>>>>> + } >>>>>>>> + >>>>>>>> + COMPILE::SWF >>>>>>>> + override public function layout():Boolean >>>>>>>> + { >>>>>>>> + var contentView:ILayoutView = layoutView; >>>>>>>> + actualChild = >>>>>>>> document.hasOwnProperty(flexibleChild) ? >>>>>>>> document[flexibleChild] : null; >>>>>>>> + >>>>>>>> + var n:Number = contentView.numElements; >>>>>>>> + if (n == 0) return false; >>>>>>>> + >>>>>>>> + var maxWidth:Number = 0; >>>>>>>> + var maxHeight:Number = 0; >>>>>>>> + var hostSizedToContent:Boolean = >>>>>>>> host.isWidthSizedToContent(); >>>>>>>> + var hostWidth:Number = host.width; >>>>>>>> + var hostHeight:Number = host.height; >>>>>>>> + >>>>>>>> + var ilc:ILayoutChild; >>>>>>>> + var data:Object; >>>>>>>> + var canAdjust:Boolean = false; >>>>>>>> + var margins:Object; >>>>>>>> + >>>>>>>> + var paddingMetrics:Rectangle = >>>>>>>> CSSContainerUtils.getPaddingMetrics(host); >>>>>>>> + var borderMetrics:Rectangle = >>>>>>>> CSSContainerUtils.getBorderMetrics(host); >>>>>>>> + >>>>>>>> + // adjust the host's usable size by the >>>>>>>> metrics. If >>>>>>>> hostSizedToContent, then the >>>>>>>> + // resulting adjusted value may be less than >>>>>>>> zero. >>>>>>>> + hostWidth -= paddingMetrics.left + >>>>>>>> paddingMetrics.right + >>>>>>>> borderMetrics.left + borderMetrics.right; >>>>>>>> + hostHeight -= paddingMetrics.top + >>>>>>>> paddingMetrics.bottom + >>>>>>>> borderMetrics.top + borderMetrics.bottom; >>>>>>>> + >>>>>>>> + var xpos:Number = borderMetrics.left + >>>>>>>> paddingMetrics.left; >>>>>>>> + var ypos:Number = borderMetrics.top + >>>>>>>> paddingMetrics.left; >>>>>>>> + var child:IUIBase; >>>>>>>> + var childWidth:Number; >>>>>>>> + var i:int; >>>>>>>> + var childXpos:Number; >>>>>>>> + var adjustTop:Number = 0; >>>>>>>> + var adjustBottom:Number = hostHeight + >>>>>>>> borderMetrics.top + >>>>>>>> paddingMetrics.top; >>>>>>>> + >>>>>>>> + // first work from top to bottom >>>>>>>> + for(i=0; i < n; i++) >>>>>>>> + { >>>>>>>> + child = contentView.getElementAt(i) as >>>>>>>> IUIBase; >>>>>>>> + if (child == null || !child.visible) >>>>>>>> continue; >>>>>>>> + if (child == actualChild) break; >>>>>>>> + >>>>>>>> + margins = childMargins(child, >>>>>>>> hostWidth, hostHeight); >>>>>>>> + ilc = child as ILayoutChild; >>>>>>>> + >>>>>>>> + ypos += margins.top; >>>>>>>> + >>>>>>>> + childXpos = xpos + margins.left; // >>>>>>>> default x position >>>>>>>> + >>>>>>>> + childWidth = child.width; >>>>>>>> + if (ilc != null) >>>>>>>> + { >>>>>>>> + if (!isNaN(ilc.percentWidth)) { >>>>>>>> + childWidth = hostWidth >>>>>>>> * ilc.percentWidth/100.0; >>>>>>>> + } >>>>>>>> + else if >>>>>>>> (isNaN(ilc.explicitWidth)) { >>>>>>>> + childWidth = hostWidth; >>>>>>>> + } >>>>>>>> + ilc.setWidth(childWidth); >>>>>>>> + } >>>>>>>> + >>>>>>>> + if (ilc) { >>>>>>>> + ilc.setX(childXpos); >>>>>>>> + ilc.setY(ypos); >>>>>>>> + >>>>>>>> + if (!isNaN(ilc.percentHeight)) { >>>>>>>> + >>>>>>>> ilc.setHeight(hostHeight * ilc.percentHeight / 100); >>>>>>>> + } >>>>>>>> + >>>>>>>> + } else { >>>>>>>> + child.x = childXpos; >>>>>>>> + child.y = ypos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + ypos += child.height + margins.bottom; >>>>>>>> + adjustTop = ypos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + // then work from bottom to top >>>>>>>> + ypos = hostHeight + borderMetrics.top + >>>>>>>> paddingMetrics.top; >>>>>>>> + >>>>>>>> + for(i=(n-1); actualChild != null && i >= 0; i--) >>>>>>>> + { >>>>>>>> + child = contentView.getElementAt(i) as >>>>>>>> IUIBase; >>>>>>>> + if (child == null || !child.visible) >>>>>>>> continue; >>>>>>>> + if (child == actualChild) break; >>>>>>>> + >>>>>>>> + margins = childMargins(child, >>>>>>>> hostWidth, hostHeight); >>>>>>>> + ilc = child as ILayoutChild; >>>>>>>> + >>>>>>>> + childXpos = xpos + margins.left; // >>>>>>>> default x position >>>>>>>> + >>>>>>>> + childWidth = child.width; >>>>>>>> + if (ilc != null) >>>>>>>> + { >>>>>>>> + if (!isNaN(ilc.percentWidth)) { >>>>>>>> + childWidth = hostWidth >>>>>>>> * ilc.percentWidth/100.0; >>>>>>>> + } >>>>>>>> + else if >>>>>>>> (isNaN(ilc.explicitWidth)) { >>>>>>>> + childWidth = hostWidth; >>>>>>>> + } >>>>>>>> + ilc.setWidth(childWidth); >>>>>>>> + } >>>>>>>> + >>>>>>>> + if (ilc) { >>>>>>>> + if (!isNaN(ilc.percentHeight)) { >>>>>>>> + >>>>>>>> ilc.setHeight(hostHeight * ilc.percentHeight / 100); >>>>>>>> + } >>>>>>>> + } >>>>>>>> + >>>>>>>> + ypos -= child.height + margins.bottom; >>>>>>>> + >>>>>>>> + if (ilc) { >>>>>>>> + ilc.setX(childXpos); >>>>>>>> + ilc.setY(ypos); >>>>>>>> + } else { >>>>>>>> + child.x = childXpos; >>>>>>>> + child.y = ypos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + ypos -= margins.top; >>>>>>>> + adjustBottom = ypos; >>>>>>>> + } >>>>>>>> + >>>>>>>> + // now adjust the actualChild to fill the space. >>>>>>>> + if (actualChild != null) { >>>>>>>> + margins = childMargins(actualChild, >>>>>>>> hostWidth, hostHeight); >>>>>>>> + ilc = actualChild as ILayoutChild; >>>>>>>> + childWidth = actualChild.width; >>>>>>>> + if (ilc != null) >>>>>>>> + { >>>>>>>> + if (!isNaN(ilc.percentWidth)) { >>>>>>>> + childWidth = hostWidth >>>>>>>> * ilc.percentWidth/100.0; >>>>>>>> + } >>>>>>>> + else if >>>>>>>> (isNaN(ilc.explicitWidth)) { >>>>>>>> + childWidth = hostWidth; >>>>>>>> + } >>>>>>>> + ilc.setWidth(childWidth); >>>>>>>> + } >>>>>>>> + childXpos = xpos + margins.left; >>>>>>>> + >>>>>>>> + actualChild.x = childXpos >>>>>>>> + actualChild.y = adjustTop + margins.top; >>>>>>>> + if (ilc) { >>>>>>>> + >>>>>>>> ilc.setHeight((adjustBottom-margins.bottom) - >>>>>>>> (adjustTop+margins.top)); >>>>>>>> + } else { >>>>>>>> + actualChild.height = >>>>>>>> (adjustBottom-margins.bottom) - >>>>>>>> (adjustTop+margins.top); >>>>>>>> + } >>>>>>>> + } >>>>>>>> + >>>>>>>> + return true; >>>>>>>> + } >>>>>>>> + >>>>>>>> + public function setDocument(document:Object, id:String = >>>>>>>> null):void >>>>>>>> + { >>>>>>>> + this.document = document; >>>>>>>> + } >>>>>>>> + } >>>>>>>> + >>>>>>>> +} >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframewor >>>>>>>>ks >>>>>>>> %2 >>>>>>>> Fp >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2F >>>>>>>>be >>>>>>>> ad >>>>>>>> s% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>2Flayouts%2FOneFlexibleChildVerticalLayoutLockChildWidth.as&data=02 >>>>>>>>%7 >>>>>>>> C0 >>>>>>>> 1% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>7C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178d >>>>>>>>ec >>>>>>>> ee >>>>>>>> 1% >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>7C0%7C0%7C636370058818766511&sdata=4Q4bkts0dp4wvvLUtu2yTYNg%2Fr7jS8 >>>>>>>>bR >>>>>>>> t4 >>>>>>>> co >>>>>>>> 3nYbPKc%3D&reserved=0 >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> diff --git >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildVerticalLayoutLockChildWidth.as >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildVerticalLayoutLockChildWidth.as >>>>>>>> deleted file mode 100644 >>>>>>>> index 7415299..0000000 >>>>>>>> --- >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/bead >>>>>>>>s/ >>>>>>>> la >>>>>>>> yo >>>>>>>> uts/OneFlexibleChildVerticalLayoutLockChildWidth.as >>>>>>>> +++ /dev/null >>>>>>>> @@ -1,93 +0,0 @@ >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>-////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> -// >>>>>>>> -// Licensed to the Apache Software Foundation (ASF) under one >>>>>>>>or >>>>>>>> more >>>>>>>> -// contributor license agreements. See the NOTICE file >>>>>>>> distributed >>>>>>>> with >>>>>>>> -// this work for additional information regarding copyright >>>>>>>> ownership. >>>>>>>> -// The ASF licenses this file to You under the Apache License, >>>>>>>> Version 2.0 >>>>>>>> -// (the "License"); you may not use this file except in >>>>>>>>compliance >>>>>>>> with >>>>>>>> -// the License. You may obtain a copy of the License at >>>>>>>> -// >>>>>>>> -// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww >>>>>>>>.a >>>>>>>> pa >>>>>>>> ch >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3 >>>>>>>>ae >>>>>>>> 08 >>>>>>>> d4 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363700588187 >>>>>>>>66 >>>>>>>> 51 >>>>>>>> 1& >>>>>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>>>>> -// >>>>>>>> -// Unless required by applicable law or agreed to in writing, >>>>>>>> software >>>>>>>> -// distributed under the License is distributed on an "AS IS" >>>>>>>> BASIS, >>>>>>>> -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express >>>>>>>> or >>>>>>>> implied. >>>>>>>> -// See the License for the specific language governing >>>>>>>> permissions >>>>>>>> and >>>>>>>> -// limitations under the License. >>>>>>>> -// >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>-////////////////////////////////////////////////////////////////// >>>>>>>>// >>>>>>>> // >>>>>>>> // >>>>>>>> //////// >>>>>>>> -package org.apache.flex.html.beads.layouts >>>>>>>> -{ >>>>>>>> - import org.apache.flex.core.LayoutBase; >>>>>>>> - import org.apache.flex.core.IDocument; >>>>>>>> - import org.apache.flex.core.ILayoutChild; >>>>>>>> - import org.apache.flex.core.ILayoutHost; >>>>>>>> - import org.apache.flex.core.ILayoutView; >>>>>>>> - import org.apache.flex.core.ILayoutParent; >>>>>>>> - import org.apache.flex.core.IParentIUIBase; >>>>>>>> - import org.apache.flex.core.IStrand; >>>>>>>> - import org.apache.flex.core.IStyleableObject; >>>>>>>> - import org.apache.flex.core.IUIBase; >>>>>>>> - import org.apache.flex.core.ValuesManager; >>>>>>>> - import org.apache.flex.core.UIBase; >>>>>>>> - import org.apache.flex.events.Event; >>>>>>>> - import org.apache.flex.geom.Rectangle; >>>>>>>> - import org.apache.flex.utils.CSSContainerUtils; >>>>>>>> - import org.apache.flex.utils.CSSUtils; >>>>>>>> - >>>>>>>> - /** >>>>>>>> - * The OneFlexibleChildHorizontalLayoutLockChildHeight >>>>>>>> - * is a subclass of OneFlexibleChildHorizontalLayout >>>>>>>> - * that sets the flexible child's height to be the height >>>>>>>> - * of the host container. This is useful when you >>>>>>>> - * don't want the actual child's height to dictate the >>>>>>>> - * height of the container in order to force >>>>>>>> - * scrollbars or line wrapping. >>>>>>>> - * >>>>>>>> - * @langversion 3.0 >>>>>>>> - * @playerversion Flash 10.2 >>>>>>>> - * @playerversion AIR 2.6 >>>>>>>> - * @productversion FlexJS 0.0 >>>>>>>> - */ >>>>>>>> - public class OneFlexibleChildVerticalLayoutLockChildWidth >>>>>>>>extends >>>>>>>> OneFlexibleChildVerticalLayout >>>>>>>> - { >>>>>>>> - /** >>>>>>>> - * Constructor. >>>>>>>> - * >>>>>>>> - * @langversion 3.0 >>>>>>>> - * @playerversion Flash 10.2 >>>>>>>> - * @playerversion AIR 2.6 >>>>>>>> - * @productversion FlexJS 0.0 >>>>>>>> - */ >>>>>>>> - public function >>>>>>>> OneFlexibleChildVerticalLayoutLockChildWidth() >>>>>>>> - { >>>>>>>> - super(); >>>>>>>> - } >>>>>>>> - >>>>>>>> - /** >>>>>>>> - * @copy org.apache.flex.core.IBeadLayout#layout >>>>>>>> - */ >>>>>>>> - override public function layout():Boolean >>>>>>>> - { >>>>>>>> - var ret:Boolean = super.layout(); >>>>>>>> - if (ret) >>>>>>>> - { >>>>>>>> - var contentView:ILayoutView = >>>>>>>> layoutView; >>>>>>>> - >>>>>>>> - var n:int = contentView.numElements; >>>>>>>> - >>>>>>>> - var w:Number = host.width; >>>>>>>> - for(var i:int=0; i < n; i++) { >>>>>>>> - var child:UIBase = >>>>>>>> contentView.getElementAt(i) as UIBase; >>>>>>>> - if (child != actualChild) >>>>>>>> - w = child.width; >>>>>>>> - } >>>>>>>> - >>>>>>>> - actualChild.setWidth(w); >>>>>>>> - } >>>>>>>> - return ret; >>>>>>>> - } >>>>>>>> - >>>>>>>> - } >>>>>>>> - >>>>>>>> -} >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit >>>>>>>>-w >>>>>>>> ip >>>>>>>> -u >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframewor >>>>>>>>ks >>>>>>>> %2 >>>>>>>> Fp >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>rojects%2FBasic%2Fsrc%2Fmain%2Fresources%2Fbasic-manifest.xml&data= >>>>>>>>02 >>>>>>>> %7 >>>>>>>> C0 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>1%7C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c17 >>>>>>>>8d >>>>>>>> ec >>>>>>>> ee >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>1%7C0%7C0%7C636370058818766511&sdata=mPldYCuDfp%2BxQ4QROdu4BWSl3Dh7 >>>>>>>>HP >>>>>>>> 19 >>>>>>>> VX >>>>>>>> BR3B3IXOg%3D&reserved=0 >>>>>>>> >>>>>>>> >>>>>>>>------------------------------------------------------------------- >>>>>>>>-- >>>>>>>> - >>>>>>>> diff --git >>>>>>>> a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>>>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>>>> index 7cbc05d..09bb1a3 100644 >>>>>>>> --- >>>>>>>> a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>>>> +++ >>>>>>>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>>>> @@ -150,8 +150,8 @@ >>>>>>>> <component id="FlexibleFirstChildHorizontalLayout" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizon >>>>>>>>ta >>>>>>>> lL >>>>>>>> ay >>>>>>>> out"/> >>>>>>>> <component id="OneFlexibleChildVerticalLayout" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalL >>>>>>>>ay >>>>>>>> ou >>>>>>>> t" >>>>>>>> /> >>>>>>>> <component id="OneFlexibleChildHorizontalLayout" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizonta >>>>>>>>lL >>>>>>>> ay >>>>>>>> ou >>>>>>>> t"/> >>>>>>>> - <component id="OneFlexibleChildVerticalLayoutLockChildWidth" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalL >>>>>>>>ay >>>>>>>> ou >>>>>>>> tL >>>>>>>> ockChildWidth"/> >>>>>>>> - <component >>>>>>>> id="OneFlexibleChildHorizontalLayoutLockChildHeight" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizonta >>>>>>>>lL >>>>>>>> ay >>>>>>>> ou >>>>>>>> tLockChildHeight"/> >>>>>>>> + <component id="OneFlexibleChildVerticalLayoutForOverflow" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalL >>>>>>>>ay >>>>>>>> ou >>>>>>>> tF >>>>>>>> orOverflow"/> >>>>>>>> + <component id="OneFlexibleChildHorizontalLayoutForOverflow" >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizonta >>>>>>>>lL >>>>>>>> ay >>>>>>>> ou >>>>>>>> tForOverflow"/> >>>>>>>> <component id="MXMLBeadView" >>>>>>>> class="org.apache.flex.html.MXMLBeadView"/> >>>>>>>> >>>>>>>> <component id="SubAppLoader" >>>>>>>> class="org.apache.flex.html.SubAppLoader" /> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>> >>> >>> >> >