I'm not sure I understand.  Why is this not what's needed?  Just because
you are trying to get the compiler to not complain?  There is a
skipFunctionCoercions option that turns off all calls to Language.is.  We
don't have a directive per occurrence, but I suppose we could.

-Alex

On 8/26/17, 9:41 PM, "Harbs" <harbs.li...@gmail.com> wrote:

>FYI:
>
>The pattern of MyClass(myObject) will always produce JS code which calls
>Language.as which throws an RTE if the object cannot be coerced as the
>class. Using compiler options to ignore coercion has no effect on this
>case.
>
>Most of the time, this is not what’s needed.
>
>Generally a better pattern is (myObject as MyClass). This will produce JS
>code which calls Language.as unless coercion is ignored in which case the
>cast is simply dropped and more efficient JS code is used.
>
>There are a  number of casts to IEventDispatcher and UIBase which should
>probably be redone.
>
>Thanks,
>Harbs
>
>> On Aug 24, 2017, at 12:53 AM, pio...@apache.org wrote:
>> 
>> FLEX-35354 - Rename TabsItemRendererFactoryForArrayListData  to
>>TabsDynamicItemsRendererFactoryForArrayListData
>> - Update TabsDynamicItemsRendererFactoryForArrayListData with new
>>implementation of DynamicItemsRendererFactoryForArrayListData
>> - Update example MDLDynamicTabsExample
>> 
>> 
>> Project: 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Frepo&data=02%7C01%7C%7C468a0ef52
>>6744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363
>>94056917929660&sdata=ywP24lHiNv9U2%2FYYts%2FExMJf3XjnY%2BUJZ%2FW5BekcEFo%
>>3D&reserved=0
>> Commit: 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fcommit%2F5b8f1c58&data=02%7C01%7
>>C%7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7
>>C0%7C0%7C636394056917929660&sdata=yieFxBWlW9k%2ByWpzlHwaFRt71MWQAAbyh9uGm
>>klciVQ%3D&reserved=0
>> Tree: 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Ftree%2F5b8f1c58&data=02%7C01%7C%
>>7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>%7C0%7C636394056917929660&sdata=lx5%2F2Bchvdta6%2B3GLNbsU1QxjOo3XVCU9w0Jb
>>fhiGf0%3D&reserved=0
>> Diff: 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fdiff%2F5b8f1c58&data=02%7C01%7C%
>>7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>%7C0%7C636394056917929660&sdata=8kjuuPIDmkRV77SkM8P3vTzOQw9eVM3wicCZ6deva
>>Cg%3D&reserved=0
>> 
>> Branch: refs/heads/develop
>> Commit: 5b8f1c5898c776eb7470e855073833e68e794a6d
>> Parents: 56e467a
>> Author: piotrz <pio...@apache.org>
>> Authored: Wed Aug 23 23:53:09 2017 +0200
>> Committer: piotrz <pio...@apache.org>
>> Committed: Wed Aug 23 23:53:09 2017 +0200
>> 
>> ----------------------------------------------------------------------
>> .../src/main/flex/views/InitialView.mxml        |  24 ++-
>> .../src/main/resources/mdl-styles.css           |   2 +-
>> .../src/main/flex/MDLClasses.as                 |   2 +-
>> ...namicItemsRendererFactoryForArrayListData.as | 108 ++++++++++
>> .../TabsItemRendererFactoryForArrayListData.as  | 206
>>-------------------
>> .../org/apache/flex/mdl/beads/views/TabsView.as |   6 +-
>> .../src/main/resources/defaults.css             |   4 +-
>> 7 files changed, 129 insertions(+), 223 deletions(-)
>> ----------------------------------------------------------------------
>> 
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fexamples%2Ffle
>>xjs%2FMDLDynamicTabsExample%2Fsrc%2Fmain%2Fflex%2Fviews%2FInitialView.mxm
>>l&data=02%7C01%7C%7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794
>>aed2c178decee1%7C0%7C0%7C636394056917929660&sdata=6UIGaZ%2FWGyCUrbpACPlAW
>>bOsjRpPyTOXU%2FfYQ6pGe%2Fs%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/examples/flexjs/MDLDynamicTabsExample/src/main/flex/views/InitialView.m
>>xml 
>>b/examples/flexjs/MDLDynamicTabsExample/src/main/flex/views/InitialView.m
>>xml
>> index 5523b6f..1482982 100644
>> --- 
>>a/examples/flexjs/MDLDynamicTabsExample/src/main/flex/views/InitialView.m
>>xml
>> +++ 
>>b/examples/flexjs/MDLDynamicTabsExample/src/main/flex/views/InitialView.m
>>xml
>> @@ -39,14 +39,18 @@ limitations under the License.
>>      <mdl:model>
>>              <models:TabsModel id="tabsModel"/>
>>      </mdl:model>
>> -    <mdl:Tabs id="myTabs" selectedIndex="1" tabIdField="tabId"
>>labelField="label" className="customTabs"
>> -                      dataProvider="{tabsModel.tabs}" width="500">
>> -            <mdl:beads>
>> -                    <js:DataProviderCollectionChangeNotifier 
>> sourceID="tabsModel"
>>propertyName="tabs"
>> -                                                                            
>>                          destinationPropertyName="dataProvider"
>>changeEventName="dataProviderChanged"  />
>> -                    <js:DataProviderItemsChangeNotifier sourceID="tabsModel"
>>propertyName="tabs"
>> -                                                                            
>>                 destinationPropertyName="dataProvider"
>>changeEventName="dataProviderChanged"  />
>> -            </mdl:beads>
>> -    </mdl:Tabs>
>> -    <mdl:Button text="Add new Tab" click="onAddNewTabClick(event)"/>
>> +    <mdl:GridCell column="6">
>> +            <mdl:Tabs id="myTabs" selectedIndex="1" tabIdField="tabId"
>>labelField="label" className="customTabs"
>> +                              dataProvider="{tabsModel.tabs}" width="500">
>> +                    <mdl:beads>
>> +                            <js:DataProviderCollectionChangeNotifier 
>> sourceID="tabsModel"
>>propertyName="tabs"
>> +                                                                            
>>                                  destinationPropertyName="dataProvider"
>>changeEventName="dataProviderChanged"  />
>> +                            <js:DataProviderItemsChangeNotifier 
>> sourceID="tabsModel"
>>propertyName="tabs"
>> +                                                                            
>>                         destinationPropertyName="dataProvider"
>>changeEventName="dataProviderChanged"  />
>> +                    </mdl:beads>
>> +            </mdl:Tabs>
>> +    </mdl:GridCell>
>> +    <mdl:GridCell>
>> +            <mdl:Button text="Add new Tab" click="onAddNewTabClick(event)"/>
>> +    </mdl:GridCell>
>> </mdl:Grid>
>> \ No newline at end of file
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fexamples%2Ffle
>>xjs%2FMDLDynamicTabsExample%2Fsrc%2Fmain%2Fresources%2Fmdl-styles.css&dat
>>a=02%7C01%7C%7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c
>>178decee1%7C0%7C0%7C636394056917929660&sdata=nEVi%2BuNLD%2Bo5kGBb7oLC3XmW
>>gUYbuPO7RD3S919OZdA%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/examples/flexjs/MDLDynamicTabsExample/src/main/resources/mdl-styles.css
>> 
>>b/examples/flexjs/MDLDynamicTabsExample/src/main/resources/mdl-styles.css
>> index 8d52a54..e713389 100644
>> --- 
>>a/examples/flexjs/MDLDynamicTabsExample/src/main/resources/mdl-styles.css
>> +++ 
>>b/examples/flexjs/MDLDynamicTabsExample/src/main/resources/mdl-styles.css
>> @@ -27,5 +27,5 @@
>> {
>>   IItemRenderer:
>>ClassReference("itemRenderers.CustomTabBarPanelItemRenderer");
>>   IBeadModel: 
>>ClassReference("org.apache.flex.mdl.beads.models.TabArrayListModel");
>> -  IDataProviderItemRendererMapper:
>>ClassReference("org.apache.flex.mdl.beads.TabsItemRendererFactoryForArray
>>ListData");
>> +  IDataProviderItemRendererMapper:
>>ClassReference("org.apache.flex.mdl.beads.TabsDynamicItemsRendererFactory
>>ForArrayListData");
>> }
>> \ No newline at end of file
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fframeworks%2Fp
>>rojects%2FMaterialDesignLite%2Fsrc%2Fmain%2Fflex%2FMDLClasses.as&data=02%
>>7C01%7C%7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178de
>>cee1%7C0%7C0%7C636394056917929660&sdata=RMYR%2BVdF6xwn%2FTckqgg2cLec5J8nm
>>N9rXekVroqa7lc%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
>>b/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
>> index d9ac1ac..00ffe9d 100644
>> --- a/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
>> +++ b/frameworks/projects/MaterialDesignLite/src/main/flex/MDLClasses.as
>> @@ -28,7 +28,7 @@ package
>>      internal class MDLClasses
>>      {
>>              import 
>> org.apache.flex.mdl.beads.TabsItemRendererFactoryForArrayData;
>>TabsItemRendererFactoryForArrayData;
>> -            import 
>>org.apache.flex.mdl.beads.TabsItemRendererFactoryForArrayListData;
>>TabsItemRendererFactoryForArrayListData;
>> +            import 
>>org.apache.flex.mdl.beads.TabsDynamicItemsRendererFactoryForArrayListData
>>; TabsDynamicItemsRendererFactoryForArrayListData;
>>              import org.apache.flex.mdl.beads.models.TabArrayModel; 
>> TabArrayModel;
>>              import org.apache.flex.mdl.beads.models.TabArrayListModel;
>>TabArrayListModel;
>>              import org.apache.flex.mdl.beads.models.ToastModel; ToastModel;
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fframeworks%2Fp
>>rojects%2FMaterialDesignLite%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2F
>>mdl%2Fbeads%2FTabsDynamicItemsRendererFactoryForArrayListData.as&data=02%
>>7C01%7C%7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178de
>>cee1%7C0%7C0%7C636394056917929660&sdata=%2BapbeLMt3Jv2PIDUOvAjWptKCMWp%2B
>>mTKXx06sbZMn80%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/TabsDynamicItemsRendererFactoryForArrayListData.as
>>b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/TabsDynamicItemsRendererFactoryForArrayListData.as
>> new file mode 100644
>> index 0000000..371f79b
>> --- /dev/null
>> +++ 
>>b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/TabsDynamicItemsRendererFactoryForArrayListData.as
>> @@ -0,0 +1,108 @@
>> 
>>+////////////////////////////////////////////////////////////////////////
>>////////
>> +//
>> +//  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
>>e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C468a0ef526744f407ac408d4
>>ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636394056917929660&
>>sdata=eby%2BNBek4IgNDs2RDn%2F%2F4Gf62h70N7cAe0zfQbmRRqY%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.mdl.beads
>> +{
>> +    import org.apache.flex.collections.IArrayList;
>> +    import org.apache.flex.core.IListPresentationModel;
>> +    import org.apache.flex.events.CollectionEvent;
>> +
>> +    import org.apache.flex.events.IEventDispatcher;
>> +    import 
>>org.apache.flex.html.beads.DynamicItemsRendererFactoryForArrayListData;
>> +    import org.apache.flex.mdl.beads.models.ITabModel;
>> +    import org.apache.flex.mdl.supportClasses.ITabItemRenderer;
>> +    import org.apache.flex.events.Event;
>> +
>> +    
>>[Event(name="itemRendererCreated",type="org.apache.flex.events.ItemRender
>>erEvent")]
>> +
>> +    /**
>> +     *  The TabsDynamicItemsRendererFactoryForArrayListData class
>>reads an
>> +     *  array of data and creates an item renderer for every
>> +     *  ITabItemRenderer in the array.
>> +     *
>> +     *  @langversion 3.0
>> +     *  @playerversion Flash 10.2
>> +     *  @playerversion AIR 2.6
>> +     *  @productversion FlexJS 0.8
>> +     */
>> +    public class TabsDynamicItemsRendererFactoryForArrayListData
>>extends DynamicItemsRendererFactoryForArrayListData
>> +    {
>> +        public function
>>TabsDynamicItemsRendererFactoryForArrayListData(target:Object = null)
>> +        {
>> +            super(target);
>> +        }
>> +
>> +        protected var tabsIdField:String;
>> +
>> +        /**
>> +         *  finish setup
>> +         *
>> +         *  @langversion 3.0
>> +         *  @playerversion Flash 10.2
>> +         *  @playerversion AIR 2.6
>> +         *  @productversion FlexJS 0.8
>> +         */
>> +        override protected function initComplete(event:Event):void
>> +        {
>> +            var model:ITabModel = _strand.getBeadByType(ITabModel) as
>>ITabModel;
>> +            tabsIdField = model.tabIdField;
>> +
>> +            super.initComplete(event);
>> +        }
>> +
>> +        override protected function
>>dataProviderChangeHandler(event:Event):void
>> +        {
>> +            var dp:IArrayList = dataProviderModel.dataProvider as
>>IArrayList;
>> +            if (!dp)
>> +                return;
>> +
>> +            dataGroup.removeAllItemRenderers();
>> +
>> +            var presentationModel:IListPresentationModel =
>>_strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
>> +
>> +            var n:int = dp.length;
>> +            for (var i:int = 0; i < n; i++)
>> +            {
>> +                var ir:ITabItemRenderer =
>>itemRendererFactory.createItemRenderer(dataGroup) as ITabItemRenderer;
>> +                ir.tabIdField = tabsIdField;
>> +
>> +                var item:Object = dp.getItemAt(i);
>> +                fillRenderer(i, item, ir, presentationModel);
>> +            }
>> +
>> +            IEventDispatcher(_strand).dispatchEvent(new
>>Event("itemsCreated"));
>> +        }
>> +
>> +        override protected function
>>itemAddedHandler(event:CollectionEvent):void
>> +        {
>> +            var dp:IArrayList = dataProviderModel.dataProvider as
>>IArrayList;
>> +            if (!dp)
>> +                return;
>> +
>> +            var presentationModel:IListPresentationModel =
>>_strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
>> +
>> +            var ir:ITabItemRenderer =
>>itemRendererFactory.createItemRenderer(dataGroup) as ITabItemRenderer;
>> +            ir.tabIdField = tabsIdField;
>> +
>> +            var index:int = dp.length - 1;
>> +            fillRenderer(index, event.item, ir, presentationModel);
>> +
>> +            IEventDispatcher(_strand).dispatchEvent(new
>>Event("itemsCreated"));
>> +        }
>> +    }
>> +}
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fframeworks%2Fp
>>rojects%2FMaterialDesignLite%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2F
>>mdl%2Fbeads%2FTabsItemRendererFactoryForArrayListData.as&data=02%7C01%7C%
>>7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0
>>%7C0%7C636394056917929660&sdata=ed9O6dzBKiMa5HKK7MQuoOfOuyFksehYMp3ZokvwH
>>vc%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/TabsItemRendererFactoryForArrayListData.as
>>b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/TabsItemRendererFactoryForArrayListData.as
>> deleted file mode 100644
>> index c323332..0000000
>> --- 
>>a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/TabsItemRendererFactoryForArrayListData.as
>> +++ /dev/null
>> @@ -1,206 +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.apach
>>e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C468a0ef526744f407ac408d4
>>ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636394056917929660&
>>sdata=eby%2BNBek4IgNDs2RDn%2F%2F4Gf62h70N7cAe0zfQbmRRqY%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.mdl.beads
>> -{
>> -    import org.apache.flex.collections.IArrayList;
>> -    import org.apache.flex.core.IBead;
>> -    import org.apache.flex.core.IDataProviderItemRendererMapper;
>> -    import org.apache.flex.core.IItemRendererClassFactory;
>> -    import org.apache.flex.core.IItemRendererParent;
>> -    import org.apache.flex.core.IListPresentationModel;
>> -    import org.apache.flex.core.IStrand;
>> -    import org.apache.flex.core.SimpleCSSStyles;
>> -    import org.apache.flex.core.UIBase;
>> -    import org.apache.flex.core.ValuesManager;
>> -    import org.apache.flex.events.CollectionEvent;
>> -
>> -    import org.apache.flex.events.EventDispatcher;
>> -    import org.apache.flex.events.IEventDispatcher;
>> -    import org.apache.flex.html.beads.IListView;
>> -    import org.apache.flex.mdl.beads.models.ITabModel;
>> -    import org.apache.flex.mdl.supportClasses.ITabItemRenderer;
>> -    import org.apache.flex.events.Event;
>> -
>> -    
>>[Event(name="itemRendererCreated",type="org.apache.flex.events.ItemRender
>>erEvent")]
>> -
>> -    /**
>> -     *  The TabsItemRendererFactoryForArrayListData class reads an
>> -     *  array of data and creates an item renderer for every
>> -     *  ITabItemRenderer in the array.
>> -     *
>> -     *  @langversion 3.0
>> -     *  @playerversion Flash 10.2
>> -     *  @playerversion AIR 2.6
>> -     *  @productversion FlexJS 0.8
>> -     */
>> -    public class TabsItemRendererFactoryForArrayListData extends
>>EventDispatcher implements IBead, IDataProviderItemRendererMapper
>> -    {
>> -        public function
>>TabsItemRendererFactoryForArrayListData(target:Object = null)
>> -        {
>> -            super(target);
>> -        }
>> -
>> -        protected var dataProviderModel:ITabModel;
>> -
>> -        protected var labelField:String;
>> -        protected var tabsIdField:String;
>> -
>> -        private var _strand:IStrand;
>> -
>> -        /**
>> -         *  @copy org.apache.flex.core.IBead#strand
>> -         *
>> -         *  @langversion 3.0
>> -         *  @playerversion Flash 10.2
>> -         *  @playerversion AIR 2.6
>> -         *  @productversion FlexJS 0.8
>> -         */
>> -        public function set strand(value:IStrand):void
>> -        {
>> -            _strand = value;
>> -            
>>IEventDispatcher(value).addEventListener("initComplete",finishSetup);
>> -        }
>> -
>> -        /**
>> -         *  finish setup
>> -         *
>> -         *  @langversion 3.0
>> -         *  @playerversion Flash 10.2
>> -         *  @playerversion AIR 2.6
>> -         *  @productversion FlexJS 0.8
>> -         */
>> -        private function finishSetup(event:Event):void
>> -        {
>> -            
>>IEventDispatcher(_strand).removeEventListener("initComplete",finishSetup)
>>;
>> -
>> -            dataProviderModel = _strand.getBeadByType(ITabModel) as
>>ITabModel;
>> -            var listView:IListView = _strand.getBeadByType(IListView)
>>as IListView;
>> -            dataGroup = listView.dataGroup;
>> -            dataProviderModel.addEventListener("dataProviderChanged",
>>dataProviderChangeHandler);
>> -            
>>dataProviderModel.addEventListener(CollectionEvent.ITEM_ADDED,
>>itemAddedHandler);
>> -
>> -            tabsIdField = dataProviderModel.tabIdField;
>> -            labelField = dataProviderModel.labelField;
>> -
>> -            dataProviderChangeHandler(null);
>> -        }
>> -
>> -        private var _itemRendererFactory:IItemRendererClassFactory;
>> -
>> -        /**
>> -         *  The org.apache.flex.core.IItemRendererClassFactory used
>> -         *  to generate instances of item renderers.
>> -         *
>> -         *  @langversion 3.0
>> -         *  @playerversion Flash 10.2
>> -         *  @playerversion AIR 2.6
>> -         *  @productversion FlexJS 0.8
>> -         */
>> -        public function get
>>itemRendererFactory():IItemRendererClassFactory
>> -        {
>> -                    if (_itemRendererFactory == null) {
>> -                            var factory:IItemRendererClassFactory =
>>_strand.getBeadByType(IItemRendererClassFactory) as
>>IItemRendererClassFactory;
>> -                            if (factory == null) {
>> -                                    factory = new 
>> (ValuesManager.valuesImpl.getValue(_strand,
>>"iItemRendererClassFactory")) as IItemRendererClassFactory;
>> -                                    _strand.addBead(factory);
>> -                            }
>> -                            _itemRendererFactory = factory;
>> -                    }
>> -            return _itemRendererFactory;
>> -        }
>> -
>> -        /**
>> -         *  @private
>> -         */
>> -        public function set
>>itemRendererFactory(value:IItemRendererClassFactory):void
>> -        {
>> -            _itemRendererFactory = value;
>> -        }
>> -
>> -        /**
>> -         *  The org.apache.flex.core.IItemRendererParent that will
>> -         *  parent the item renderers.
>> -         *
>> -         *  @langversion 3.0
>> -         *  @playerversion Flash 10.2
>> -         *  @playerversion AIR 2.6
>> -         *  @productversion FlexJS 0.8
>> -         */
>> -        protected var dataGroup:IItemRendererParent;
>> -
>> -        protected function dataProviderChangeHandler(event:Event):void
>> -        {
>> -            var dp:IArrayList = dataProviderModel.dataProvider as
>>IArrayList;
>> -            if (!dp)
>> -                return;
>> -
>> -            dataGroup.removeAllItemRenderers();
>> -
>> -            var presentationModel:IListPresentationModel =
>>_strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
>> -
>> -            var n:int = dp.length;
>> -            for (var i:int = 0; i < n; i++)
>> -            {
>> -                var ir:ITabItemRenderer =
>>itemRendererFactory.createItemRenderer(dataGroup) as ITabItemRenderer;
>> -                dataGroup.addItemRenderer(ir);
>> -                ir.index = i;
>> -                ir.labelField = labelField;
>> -                ir.tabIdField = tabsIdField;
>> -
>> -                if (presentationModel) {
>> -                    var style:SimpleCSSStyles = new SimpleCSSStyles();
>> -                    style.marginBottom =
>>presentationModel.separatorThickness;
>> -                    UIBase(ir).style = style;
>> -                    UIBase(ir).height = presentationModel.rowHeight;
>> -                    UIBase(ir).percentWidth = 100;
>> -                }
>> -                ir.data = dp.getItemAt(i);
>> -            }
>> -
>> -            IEventDispatcher(_strand).dispatchEvent(new
>>Event("itemsCreated"));
>> -        }
>> -
>> -        private function itemAddedHandler(event:CollectionEvent):void
>> -        {
>> -            var dp:IArrayList = dataProviderModel.dataProvider as
>>IArrayList;
>> -            if (!dp)
>> -                return;
>> -
>> -            var presentationModel:IListPresentationModel =
>>_strand.getBeadByType(IListPresentationModel) as IListPresentationModel;
>> -
>> -            var ir:ITabItemRenderer =
>>itemRendererFactory.createItemRenderer(dataGroup) as ITabItemRenderer;
>> -            dataGroup.addItemRenderer(ir);
>> -            
>> -            ir.index = dp.length - 1;
>> -            ir.labelField = labelField;
>> -            ir.tabIdField = tabsIdField;
>> -
>> -            if (presentationModel) {
>> -                var style:SimpleCSSStyles = new SimpleCSSStyles();
>> -                style.marginBottom =
>>presentationModel.separatorThickness;
>> -                UIBase(ir).style = style;
>> -                UIBase(ir).height = presentationModel.rowHeight;
>> -                UIBase(ir).percentWidth = 100;
>> -            }
>> -            ir.data = event.item;
>> -
>> -            IEventDispatcher(_strand).dispatchEvent(new
>>Event("itemsCreated"));
>> -        }
>> -    }
>> -}
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fframeworks%2Fp
>>rojects%2FMaterialDesignLite%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2F
>>mdl%2Fbeads%2Fviews%2FTabsView.as&data=02%7C01%7C%7C468a0ef526744f407ac40
>>8d4ed05e30c%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C6363940569179296
>>60&sdata=664hX%2BBKf1rJvAy0khpJSiCJk4fe9hkbkvYCzVf6iTA%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/views/TabsView.as
>>b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/views/TabsView.as
>> index ffe291a..34c09f2 100644
>> --- 
>>a/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/views/TabsView.as
>> +++ 
>>b/frameworks/projects/MaterialDesignLite/src/main/flex/org/apache/flex/md
>>l/beads/views/TabsView.as
>> @@ -26,7 +26,7 @@ package org.apache.flex.mdl.beads.views
>>     import org.apache.flex.core.IStrand;
>>     import org.apache.flex.mdl.TabBar;
>>     import org.apache.flex.mdl.TabBarPanel;
>> -    import 
>>org.apache.flex.mdl.beads.TabsItemRendererFactoryForArrayListData;
>> +    import 
>>org.apache.flex.mdl.beads.TabsDynamicItemsRendererFactoryForArrayListData
>>;
>>     import org.apache.flex.mdl.supportClasses.ITabItemRenderer;
>> 
>>     /**
>> @@ -166,8 +166,8 @@ package org.apache.flex.mdl.beads.views
>> 
>>         public function isTabsDynamic():Boolean
>>         {
>> -            var
>>arrayListMapper:TabsItemRendererFactoryForArrayListData =
>> -               
>>_strand.getBeadByType(IDataProviderItemRendererMapper) as
>>TabsItemRendererFactoryForArrayListData;
>> +            var
>>arrayListMapper:TabsDynamicItemsRendererFactoryForArrayListData =
>> +               
>>_strand.getBeadByType(IDataProviderItemRendererMapper) as
>>TabsDynamicItemsRendererFactoryForArrayListData;
>>             return arrayListMapper != null;
>>         }
>>     }
>> 
>> 
>>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip-u
>>s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2F5b8f1c58%2Fframeworks%2Fp
>>rojects%2FMaterialDesignLite%2Fsrc%2Fmain%2Fresources%2Fdefaults.css&data
>>=02%7C01%7C%7C468a0ef526744f407ac408d4ed05e30c%7Cfa7b1b5a7b34438794aed2c1
>>78decee1%7C0%7C0%7C636394056917929660&sdata=yM%2Bu3tP0EamD3bb7vDTMQqkqNqv
>>W4LrFU8c3JJ0jocY%3D&reserved=0
>> ----------------------------------------------------------------------
>> diff --git 
>>a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
>>b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
>> index f8b3b05..9e5ece7 100644
>> --- 
>>a/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
>> +++ 
>>b/frameworks/projects/MaterialDesignLite/src/main/resources/defaults.css
>> @@ -122,7 +122,7 @@ Tabs
>>     IBeadView: 
>>ClassReference("org.apache.flex.mdl.beads.views.TabsView");
>>     IBeadModel: 
>>ClassReference("org.apache.flex.mdl.beads.models.TabArrayModel");
>>     IBeadLayout: ClassReference(null);
>> -    IDataProviderItemRendererMapper:
>>ClassReference("org.apache.flex.mdl.beads.TabsItemRendererFactoryForArray
>>ListData");
>> +    IDataProviderItemRendererMapper:
>>ClassReference("org.apache.flex.mdl.beads.TabsDynamicItemsRendererFactory
>>ForArrayListData");
>>     IItemRendererClassFactory:
>>ClassReference("org.apache.flex.core.ItemRendererClassFactory");
>>     IItemRenderer:
>>ClassReference("org.apache.flex.mdl.itemRenderers.TabBarPanelItemRenderer
>>");
>> }
>> @@ -132,7 +132,7 @@ TabBar
>>     IBeadView: 
>>ClassReference("org.apache.flex.mdl.beads.views.TabBarView");
>>     IBeadModel: 
>>ClassReference("org.apache.flex.mdl.beads.models.TabArrayModel");
>>     IBeadLayout: ClassReference(null);
>> -    IDataProviderItemRendererMapper:
>>ClassReference("org.apache.flex.mdl.beads.TabsItemRendererFactoryForArray
>>ListData");
>> +    IDataProviderItemRendererMapper:
>>ClassReference("org.apache.flex.mdl.beads.TabsDynamicItemsRendererFactory
>>ForArrayListData");
>>     IItemRendererClassFactory:
>>ClassReference("org.apache.flex.core.ItemRendererClassFactory");
>>     IItemRenderer:
>>ClassReference("org.apache.flex.mdl.itemRenderers.TabBarButtonTabsItemRen
>>derer");
>> }
>> 
>

Reply via email to