Sure. Nitpick away! ;-)
> On Nov 13, 2017, at 8:37 PM, Piotr Zarzycki <piotrzarzyck...@gmail.com> wrote:
>
> Harbs,
>
> I shout you couple of question in the commit. I hope you are not
> overwhelming by my constant Code Inspection!
>
> Thanks, Piotr
>
> 2017-11-13 19:29 GMT+01:00 Harbs <harbs.li...@gmail.com>:
>
>> 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%7Cfa7b1b5a7b34438794aed2c178de
>> cee1%7C0%7C0%7C6364
>>>>> 61825737445515&sdata=gYDEhA2WwBvRPPQ6aOgyz5Cp4fIn3i
>> luQhq9YbFtIdQ%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%7Cfa7b1b5a7b34438794aed2c178de
>> cee1%7C0%7C0%7C63646182
>>>>> 5737445515&sdata=KWwzVziEug3oAjzc2payBE947JUEv4
>> GSWWPeoOtHd6w%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>*
>>
>>
>
>
> --
>
> Piotr Zarzycki
>
> Patreon: *https://www.patreon.com/piotrzarzycki
> <https://www.patreon.com/piotrzarzycki>*