Inside the js:Array should be Container elements. I’m using it in production.
> On Nov 9, 2017, at 4:28 PM, Peter Ent <[email protected]> wrote: > > I tested my change. I don't think it adversely affects Accordion at all, > but Accordion doesn't seem to be working correctly anyway. > > I'm getting Panels inside of Panels. So if in the <fx:Array> supplied to > Accordion, I have a <js:Panel>, that Panel gives title to the Accordion > header, but then a panel becomes a child of that container. I think > Accordion needs a re-do. > > The change I made to PanelView is very simple and I cannot see it having > any adverse affects. I also found an old email where I said I would make > an official AccordionExample as part of the examples/ directory. I'm going > to take what I just put together and do that so we'll have something to > work with. > > ‹peter > > On 11/8/17, 5:23 PM, "Harbs" <[email protected]> wrote: > >> Did you test if this effects Accordion? >> >>> On Nov 8, 2017, at 8:00 PM, [email protected] wrote: >>> >>> This is an automated email from the ASF dual-hosted git repository. >>> >>> pent pushed a commit to branch develop >>> in repository >>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.a >>> pache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7C%7C562974befcbe4 >>> 86610ce08d526f758a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63645776 >>> 6135386019&sdata=5cJenPvUsEXBM5%2FqvCbC557p5fkLxsCZCP%2By0LIitH8%3D&reser >>> ved=0 >>> >>> >>> The following commit(s) were added to refs/heads/develop by this push: >>> new 3e77b0c PanelView no longer removes beads. Instead, it >>> transfers beads from the Panel to its Container content area. >>> 3e77b0c is described below >>> >>> commit 3e77b0ce0a9e967fd229a2218cd277d593b58e69 >>> Author: Peter Ent <[email protected]> >>> AuthorDate: Wed Nov 8 13:00:20 2017 -0500 >>> >>> PanelView no longer removes beads. Instead, it transfers beads from >>> the Panel to its Container content area. >>> --- >>> .../org/apache/royale/html/beads/PanelView.as | 58 >>> ++++++++++++---------- >>> 1 file changed, 32 insertions(+), 26 deletions(-) >>> >>> diff --git >>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ >>> PanelView.as >>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ >>> PanelView.as >>> index 67b0552..e1343ff 100644 >>> --- >>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ >>> PanelView.as >>> +++ >>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ >>> PanelView.as >>> @@ -133,10 +133,29 @@ package org.apache.royale.html.beads >>> >>> var host:UIBase = UIBase(value); >>> >>> + // Look for a layout and/or viewport bead on the host's >>> beads list. >>> If one >>> + // is found, pull it off so it will not be added >>> permanently >>> + // to the strand. >>> + var beads: Array = host.beads; >>> + var transferLayoutBead: IBeadLayout; >>> + var transferViewportBead: IViewport; >>> + if (host.beads != null) { >>> + for(var i:int=host.beads.length-1; i >= 0; i--) >>> { >>> + if (host.beads[i] is IBeadLayout) { >>> + transferLayoutBead = >>> host.beads[i] as IBeadLayout; >>> + host.beads.splice(i, 1); >>> + } >>> + else if (host.beads[i] is IViewport) { >>> + transferViewportBead = >>> host.beads[i] as IViewport >>> + host.beads.splice(i, 1); >>> + } >>> + } >>> + } >>> + >>> if (!_titleBar) { >>> _titleBar = new TitleBar(); >>> } >>> - >>> + >>> _titleBar.id = "panelTitleBar"; >>> >>> COMPILE::SWF { >>> @@ -153,7 +172,7 @@ package org.apache.royale.html.beads >>> _titleBar.element.style["flex-grow"] = "0"; >>> _titleBar.element.style["order"] = "1"; >>> } >>> - >>> + >>> _titleBar.addEventListener("close", handleClose); >>> >>> // replace the TitleBar's model with the Panel's model >>> (it >>> implements ITitleBarModel) so that >>> @@ -167,7 +186,13 @@ package org.apache.royale.html.beads >>> if (!_contentArea) { >>> _contentArea = new Container(); >>> _contentArea.id = "panelContent"; >>> - _contentArea.className = "PanelContent"; >>> + _contentArea.typeNames = "PanelContent"; >>> + >>> + // add the layout bead to the content area. >>> + if (transferLayoutBead) >>> _contentArea.addBead(transferLayoutBead); >>> + >>> + // add the viewport bead to the content area. >>> + if (transferViewportBead) >>> _contentArea.addBead(transferViewportBead); >>> >>> COMPILE::SWF { >>> _contentArea.percentWidth = 100; >>> @@ -195,31 +220,12 @@ package org.apache.royale.html.beads >>> >>> super.strand = value; >>> >>> - // If the Panel was given a layout, transfer it to the >>> content area. >>> - var layoutBead:IBeadLayout = >>> value.getBeadByType(IBeadLayout) as >>> IBeadLayout; >>> - if (layoutBead) { >>> - value.removeBead(layoutBead); >>> - >>> - var contentLayout:IBeadLayout = >>> _contentArea.getBeadByType(IBeadLayout) as IBeadLayout; >>> - if (contentLayout) { >>> - _contentArea.removeBead(contentLayout); >>> - } >>> - _contentArea.addBead(layoutBead); >>> - } >>> - >>> - // If the Panel was given a viewport, transfer it to >>> the content >>> area. >>> - var viewportBead:IViewport = >>> value.getBeadByType(IViewport) as >>> IViewport; >>> - if (viewportBead) { >>> - value.removeBead(viewportBead); >>> - _contentArea.addBead(viewportBead); >>> - } >>> - >>> if (contentArea.parent == null) { >>> (_strand as Panel).$addElement(contentArea as >>> IChild); >>> } >>> >>> // Now give the Panel its own layout >>> - layoutBead = new VerticalFlexLayout(); >>> + var layoutBead:IBeadLayout = new VerticalFlexLayout(); >>> value.addBead(layoutBead); >>> } >>> >>> @@ -247,7 +253,7 @@ package org.apache.royale.html.beads >>> override protected function completeSetup():void >>> { >>> super.completeSetup(); >>> - >>> + >>> performLayout(null); >>> } >>> >>> @@ -266,11 +272,11 @@ package org.apache.royale.html.beads >>> _contentArea.dispatchEvent(new Event("layoutNeeded")); >>> performLayout(event); >>> } >>> - >>> + >>> private function handleClose(event:Event):void >>> { >>> IEventDispatcher(_strand).dispatchEvent(new >>> Event("close")); >>> } >>> - >>> + >>> } >>> } >>> >>> -- >>> To stop receiving notification emails like this one, please contact >>> ['"[email protected]" <[email protected]>']. >> >
