The rendering of the items is done by ItemRenderers (which in the default I believe is a Panel).
> On Nov 9, 2017, at 9:31 PM, Harbs <[email protected]> wrote: > > Accordion was designed to not care what specific components the individual > panels are. For a title, it needs a TitleBarModel. That’s it. > > Here’s an example: > https://github.com/yishayw/Examples/blob/Accordion_Express/Examples.mxml > <https://github.com/yishayw/Examples/blob/Accordion_Express/Examples.mxml> > >> On Nov 9, 2017, at 6:39 PM, Peter Ent <[email protected] >> <mailto:[email protected]>> wrote: >> >> I saw that Container worked, but how do you get labels on them? >> —peter >> >> >> On 11/9/17, 9:54 AM, "Harbs" <[email protected] >> <mailto:[email protected]>> wrote: >> >>> 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] >>>> <mailto:[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] >>>> <mailto:[email protected]>> wrote: >>>> >>>>> Did you test if this effects Accordion? >>>>> >>>>>> On Nov 8, 2017, at 8:00 PM, [email protected] <mailto:[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 >>>>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox> >>>>>> .a >>>>>> >>>>>> pache.org%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7C%7C562974befcb >>>>>> e4 >>>>>> >>>>>> 86610ce08d526f758a5%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636457 >>>>>> 76 >>>>>> >>>>>> 6135386019&sdata=5cJenPvUsEXBM5%2FqvCbC557p5fkLxsCZCP%2By0LIitH8%3D&res >>>>>> er >>>>>> 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/bead >>>>>> s/ >>>>>> PanelView.as >>>>>> >>>>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/bead >>>>>> s/ >>>>>> PanelView.as >>>>>> index 67b0552..e1343ff 100644 >>>>>> --- >>>>>> >>>>>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/bead >>>>>> s/ >>>>>> PanelView.as >>>>>> +++ >>>>>> >>>>>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/bead >>>>>> s/ >>>>>> 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]>']. >>>>> >>>> >>> >> >
