That’s what I was looking for. Thanks!
> On Nov 13, 2017, at 6:42 PM, Alex Harui <aha...@adobe.com.INVALID> wrote: > > You might be better off using childrenAdded. It should fire once for the > entire set of children specified in MXML, and once for each child added > via AS, which you might need if a child is added "later". > > My 2 cents, > -Alex > > On 11/13/17, 7:09 AM, "Piotr Zarzycki" <piotrzarzyck...@gmail.com > <mailto:piotrzarzyck...@gmail.com>> wrote: > >> Yishay, >> >> Thanks for the info! Precious! :) >> >> Piotr >> >> >> 2017-11-13 16:03 GMT+01:00 Yishay Weiss <yishayj...@hotmail.com>: >> >>> It looks like initComplete is called after children are initialized [1] >>> >>> >>> >>> I would add the focus disable behavior as a separate bead as Piotr >>> suggested (similar to DisabledAlphaBead). >>> >>> >>> >>> [1] >>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.c> >>> om%2Fyishayw%2FExamples%2Ftree%2FinitComplete&data=02%7C01%7C%7Ca9d54724b >>> c9443dcb42d08d52aa88b95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6364 >>> 61825737445515&sdata=gYDEhA2WwBvRPPQ6aOgyz5Cp4fIn3iluQhq9YbFtIdQ%3D&reser >>> ved=0 >>> >>> >>> >>> ________________________________ >>> From: Harbs <harbs.li...@gmail.com <mailto:harbs.li...@gmail.com>> >>> Sent: Monday, November 13, 2017 3:26:58 PM >>> To: dev@royale.apache.org <mailto:dev@royale.apache.org> >>> Subject: Re: [royale-asjs] 01/01: First (non-working) version >>> >>> Is initComplete fired after all the children are added? >>> >>>> Also, doesn’t DisableBead work for containers as is? >>> >>> No. DisableBead helps in so far as you can’t select using the mouse, but >>> you can still select using the keyboard by tabbing though controls. For >>> that to work, you need to disable tabbing on all the descendants. >>> >>>> On Nov 13, 2017, at 3:20 PM, Yishay Weiss <yishayj...@hotmail.com >>>> <mailto:yishayj...@hotmail.com>> >>> wrote: >>>> >>>> Why not listen to the container’s ‘initComplete’? Also, doesn’t >>> DisableBead work for containers as is? >>>> >>>> >>>> >>>> ________________________________ >>>> From: Piotr Zarzycki <piotrzarzyck...@gmail.com >>>> <mailto:piotrzarzyck...@gmail.com>> >>>> Sent: Monday, November 13, 2017 3:15:54 PM >>>> To: dev@royale.apache.org <mailto:dev@royale.apache.org> >>>> Subject: Re: [royale-asjs] 01/01: First (non-working) version >>>> >>>> Harbs, >>>> >>>> First thought is register to "initComplete" for each children ? But >>> does >>>> each of our children emit such event ? >>>> >>>> Piotr >>>> >>>> >>>> 2017-11-13 14:01 GMT+01:00 Harbs <harbs.li...@gmail.com >>>> <mailto:harbs.li...@gmail.com>>: >>>> >>>>> I need some help here. >>>>> >>>>> The code should be working, but the bead is added before the children >>> are >>>>> added, so the styles and attributes are not applied. >>>>> >>>>> Any ideas on how to delay the execution until after the full tree of >>>>> children are added? >>>>> >>>>> Thanks, >>>>> Harbs >>>>> >>>>>> On Nov 13, 2017, at 2:57 PM, ha...@apache.org <mailto:ha...@apache.org> >>>>>> wrote: >>>>>> >>>>>> This is an automated email from the ASF dual-hosted git repository. >>>>>> >>>>>> harbs pushed a commit to branch feature/disable-children-bead >>>>>> in repository >>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.a >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgitbox.a> >>> pache.org >>> <http://pache.org/>%2Frepos%2Fasf%2Froyale-asjs.git&data=02%7C01%7C%7Ca9d54724bc944 >>> 3dcb42d08d52aa88b95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63646182 >>> 5737445515&sdata=KWwzVziEug3oAjzc2payBE947JUEv4GSWWPeoOtHd6w%3D&reserved= >>> 0 >>>>>> >>>>>> commit c1cc651a6f03cbcdb6792eed367140404adf7863 >>>>>> Author: Harbs <ha...@in-tools.com <mailto:ha...@in-tools.com>> >>>>>> AuthorDate: Mon Nov 13 14:57:34 2017 +0200 >>>>>> >>>>>> First (non-working) version >>>>>> --- >>>>>> .../Basic/src/main/resources/basic-manifest.xml | 1 + >>>>>> .../royale/html/beads/DisableChildrenBead.as | 152 >>>>> +++++++++++++++++++++ >>>>>> 2 files changed, 153 insertions(+) >>>>>> >>>>>> diff --git a/frameworks/projects/Basic/src/main/resources/basic- >>> manifest.xml >>>>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>> index 90b72b3..02a8579 100644 >>>>>> --- >>> a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>> +++ >>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>>> @@ -113,6 +113,7 @@ >>>>>> <component id="UnselectableElementBead" >>>>> class="org.apache.royale.html.beads.UnselectableElementBead"/> >>>>>> <component id="DisableBead" class="org.apache.royale.html. >>> beads.DisableBead" >>>>> /> >>>>>> <component id="DisabledAlphaBead" class="org.apache.royale.html. >>> beads.DisabledAlphaBead" >>>>> /> >>>>>> + <component id="DisableChildrenBead" >>> class="org.apache.royale.html. >>> beads.DisableChildrenBead" >>>>> /> >>>>>> <component id="NumericOnlyTextInputBead" >>>>> class="org.apache.royale.html.accessories.NumericOnlyTextInputBead" >>> /> >>>>>> <component id="PasswordInputBead" class="org.apache.royale.html. >>> accessories.PasswordInputBead" >>>>> /> >>>>>> <component id="PasswordInputRemovableBead" >>>>> class="org.apache.royale.html.accessories.PasswordInputRemovableBead" >>> /> >>>>>> diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/ >>>>> royale/html/beads/DisableChildrenBead.as b/frameworks/projects/Basic/ >>>>> src/main/royale/org/apache/royale/html/beads/DisableChildrenBead.as >>>>>> new file mode 100644 >>>>>> index 0000000..ca4ffa1 >>>>>> --- /dev/null >>>>>> +++ b/frameworks/projects/Basic/src/main/royale/org/apache/ >>>>> royale/html/beads/DisableChildrenBead.as >>>>>> @@ -0,0 +1,152 @@ >>>>>> +/////////////////////////////////////////////////////////// >>>>> ///////////////////// >>>>>> +// >>>>>> +// 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.apach >>> <https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apach> >>> e.org >>> <http://e.org/>%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7Ca9d54724bc9443dcb42d08d5 >>> 2aa88b95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636461825737445515& >>> sdata=X4LDergCv4sdMdUIj%2FWVxaN5m3Jz0hX4lMmnrVES4mE%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.royale.html.beads >>>>>> +{ >>>>>> + COMPILE::SWF { >>>>>> + import flash.display.DisplayObjectContainer; >>>>>> + } >>>>>> + >>>>>> + import org.apache.royale.core.IBead; >>>>>> + import org.apache.royale.core.IStrand; >>>>>> + import org.apache.royale.core.IUIBase; >>>>>> + import org.apache.royale.core.UIHTMLElementWrapper; >>>>>> + import org.apache.royale.events.Event; >>>>>> + import org.apache.royale.events.IEventDispatcher; >>>>>> + import org.apache.royale.events.ValueEvent; >>>>>> + >>>>>> + COMPILE::JS{ >>>>>> + import org.apache.royale.core.WrappedHTMLElement; >>>>>> + import org.apache.royale.core.HTMLElementWrapper; >>>>>> + } >>>>>> + /** >>>>>> + * The DisableBead class is a specialty bead that can be used >>> with >>>>>> + * any UIBase. When disabled is true, the bead prevents >>>>> interaction with the component. >>>>>> + * The appearance of the component when disabled is >>> controlled >>> by >>>>> a separate bead. >>>>>> + * >>>>>> + * @langversion 3.0 >>>>>> + * @playerversion Flash 10.2 >>>>>> + * @playerversion AIR 2.6 >>>>>> + * @productversion Royale 0.0 >>>>>> + */ >>>>>> + public class DisableChildrenBead implements IBead >>>>>> + { >>>>>> + /** >>>>>> + * constructor. >>>>>> + * >>>>>> + * @langversion 3.0 >>>>>> + * @playerversion Flash 10.2 >>>>>> + * @playerversion AIR 2.6 >>>>>> + * @productversion Royale 0.0 >>>>>> + */ >>>>>> + public function DisableChildrenBead() >>>>>> + { >>>>>> + } >>>>>> + >>>>>> + private var _strand:IStrand; >>>>>> + private var _disabled:Boolean; >>>>>> + >>>>>> + /** >>>>>> + * @copy org.apache.royale.core.IBead#strand >>>>>> + * >>>>>> + * @langversion 3.0 >>>>>> + * @playerversion Flash 10.2 >>>>>> + * @playerversion AIR 2.6 >>>>>> + * @productversion Royale 0.0 >>>>>> + * @royaleignorecoercion HTMLInputElement >>>>>> + * @royaleignorecoercion >>> org.apache.royale.core.UIBase; >>>>>> + */ >>>>>> + public function set strand(value:IStrand):void >>>>>> + { >>>>>> + _strand = value; >>>>>> + updateHost(); >>>>>> + } >>>>>> + >>>>>> + public function get disabled():Boolean >>>>>> + { >>>>>> + return _disabled; >>>>>> + } >>>>>> + >>>>>> + /** >>>>>> + * @private >>>>>> + * @royaleignorecoercion org.apache.royale.core. >>>>> HTMLElementWrapper >>>>>> + */ >>>>>> + public function set disabled(value:Boolean):void >>>>>> + { >>>>>> + if (value != _disabled) >>>>>> + { >>>>>> + _disabled = value; >>>>>> + updateHost(); >>>>>> + throwChangeEvent(); >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + private function disabledChangeHandler(e:Event):void >>>>>> + { >>>>>> + updateHost(); >>>>>> + } >>>>>> + >>>>>> + private function get host():IUIBase >>>>>> + { >>>>>> + return _strand as IUIBase; >>>>>> + } >>>>>> + >>>>>> + COMPILE::JS >>>>>> + private var _lastTabVal:String; >>>>>> + >>>>>> + /** >>>>>> + * @royaleignorecoercion org.apache.royale.core. >>>>> HTMLElementWrapper >>>>>> + */ >>>>>> + private function updateHost():void >>>>>> + { >>>>>> + if(!_strand)//bail out >>>>>> + return; >>>>>> + COMPILE::SWF { >>>>>> + var interactiveObject: >>> DisplayObjectContainer >>>>> = _strand as DisplayObjectContainer; >>>>>> + interactiveObject.mouseChildren = >>>>> !disabled; >>>>>> + } >>>>>> + >>>>>> + COMPILE::JS { >>>>>> + setDecendants((_strand as >>>>> HTMLElementWrapper).element); >>>>>> + } >>>>>> + >>>>>> + } >>>>>> + >>>>>> + COMPILE::JS >>>>>> + private function setDecendants(elem:HTMLElement):void >>>>>> + { >>>>>> + elem.style["pointerEvents"] = _disabled ? >>> "none" >>> : >>>>> ""; >>>>>> + _disabled ? elem.setAttribute("tabindex", >>> "-1") : >>>>> elem.removeAttribute("tabindex"); >>>>>> + elem = elem.firstChild as HTMLElement; >>>>>> + while (elem) { >>>>>> + setDecendants(elem); >>>>>> + elem = elem.nextSibling as >>> HTMLElement; >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + private function throwChangeEvent():void >>>>>> + { >>>>>> + if (_strand) >>>>>> + { >>>>>> + IEventDispatcher(_strand). >>> dispatchEvent(new >>>>> ValueEvent("disabledChange", disabled)); >>>>>> + } >>>>>> + } >>>>>> + >>>>>> + >>>>>> + } >>>>>> +} >>>>>> >>>>>> -- >>>>>> To stop receiving notification emails like this one, please contact >>>>>> "comm...@royale.apache.org <mailto:comm...@royale.apache.org>" >>>>>> <comm...@royale.apache.org <mailto:comm...@royale.apache.org>>. >>>>> >>>>> >>>> >>>> >>>> -- >>>> >>>> Piotr Zarzycki >>>> >>>> Patreon: >>> *https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat> >>> reon.com >>> <http://reon.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7Ca9d54724bc9443dcb42d08d52aa88b >>> 95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636461825737445515&sdata= >>> WcTFjtNvzTnBh%2FDCDvxlUey80nWBGCjgjb6R76tbmQM%3D&reserved=0 >>>> >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat >>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.pat> >>> reon.com >>> <http://reon.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7Ca9d54724bc9443dcb42d08d52aa88b >>> 95%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636461825737445515&sdata= >>> WcTFjtNvzTnBh%2FDCDvxlUey80nWBGCjgjb6R76tbmQM%3D&reserved=0>* >>> >>> >> >> >> -- >> >> Piotr Zarzycki >> >> Patreon: >> *https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patr >> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patr> >> eon.com >> <http://eon.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7Ca9d54724bc9443dcb42d08d52aa88b95 >> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636461825737445515&sdata=WcT >> FjtNvzTnBh%2FDCDvxlUey80nWBGCjgjb6R76tbmQM%3D&reserved=0 >> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patr >> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patr> >> eon.com >> <http://eon.com/>%2Fpiotrzarzycki&data=02%7C01%7C%7Ca9d54724bc9443dcb42d08d52aa88b95 >> %7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636461825737445515&sdata=WcT >> FjtNvzTnBh%2FDCDvxlUey80nWBGCjgjb6R76tbmQM%3D&reserved=0>*