This is an automated email from the ASF dual-hosted git repository.

pent pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 5f91ace  Updated the ListExample to demonstrate the Dynamic 
itemRenderer factory and related remove itemRenderer bead.
5f91ace is described below

commit 5f91acec0185deb4e5664b2e00b16743277a4882
Author: Peter Ent <[email protected]>
AuthorDate: Fri Dec 8 10:17:05 2017 -0500

    Updated the ListExample to demonstrate the Dynamic itemRenderer factory and 
related remove itemRenderer bead.
---
 .../ListExample/src/main/royale/MyInitialView.mxml | 39 ++++++++++++++++++++--
 .../src/main/royale/models/ProductsModel.as        | 14 ++++++--
 2 files changed, 49 insertions(+), 4 deletions(-)

diff --git a/examples/royale/ListExample/src/main/royale/MyInitialView.mxml 
b/examples/royale/ListExample/src/main/royale/MyInitialView.mxml
index 1268666..872b0af 100644
--- a/examples/royale/ListExample/src/main/royale/MyInitialView.mxml
+++ b/examples/royale/ListExample/src/main/royale/MyInitialView.mxml
@@ -41,17 +41,47 @@ limitations under the License.
                        height: 30px;
                }
        </fx:Style>
+       
+       <fx:Script>
+               <![CDATA[
+                       import models.ProductsModel;
+                       
+                       private function addState():void
+                       {
+                               (applicationModel as 
ProductsModel).states.addItemAt("New Jersey", 2);
+                       }
+                       
+                       private function removeState():void
+                       {
+                               (applicationModel as 
ProductsModel).states.removeItemAt(2);
+                       }
+                       
+                       private function addFuzzies():void
+                       {
+                               (applicationModel as 
ProductsModel).productNames.addItemAt("Fuzzies", 2);
+                       }
+               ]]>
+       </fx:Script>
 
        <js:Label x="20" y="20" text="A Royale List" />
        
-       <js:List x="20" y="40" width="400" height="300">
+       <js:List id="list" x="20" y="40" width="400" height="300">
                <js:beads>
                        <js:ConstantBinding
                                sourceID="applicationModel"
-                               sourcePropertyName="productNames"
+                               sourcePropertyName="states"
                                destinationPropertyName="dataProvider" />
+                       <!-- Use this dynamic itemRenderer factory when the 
data is an ArrayList and
+                            you want to insert items programmatically. -->
+                       <js:DynamicItemsRendererFactoryForArrayListData />
+                       <!-- If you need to dynamically remove items from the 
ArrayList, include this
+                            bead which removes the corresponding itemRenderer. 
-->
+                       <js:DynamicRemoveItemRendererForArrayListData />
                </js:beads>
        </js:List>
+       
+       <js:TextButton text="Add New Jersey" x="20" y="350" click="addState()" 
/>
+       <js:TextButton text="Remove Item 0" x="200" y="350" 
click="removeState()" />
 
        
        <js:Label x="500" y="20" text="A local list using DataContainer" />
@@ -62,7 +92,12 @@ limitations under the License.
                                sourceID="applicationModel"
                                sourcePropertyName="productNames"
                                destinationPropertyName="dataProvider" />
+                       <!-- you also add this itemRendererFactory if your 
DataContainer list
+                            is using an ArrayList as its dataProvider -->
+                       <js:DynamicItemsRendererFactoryForArrayListData />
                </gen:beads>
        </gen:GenericList>
+       
+       <js:TextButton text="Add Fuzzies" x="500" y="350" click="addFuzzies()" 
/>
 
 </js:View>
diff --git 
a/examples/royale/ListExample/src/main/royale/models/ProductsModel.as 
b/examples/royale/ListExample/src/main/royale/models/ProductsModel.as
index d1430b2..7fb4606 100644
--- a/examples/royale/ListExample/src/main/royale/models/ProductsModel.as
+++ b/examples/royale/ListExample/src/main/royale/models/ProductsModel.as
@@ -18,15 +18,25 @@
 
////////////////////////////////////////////////////////////////////////////////
 package models
 {
+       import org.apache.royale.collections.ArrayList;
+
        public class ProductsModel
        {
                /**
                 * Used for the GenericList example.
                 */
-               private var _productNames:Array = ["Widgets", "Thingys", 
"Sprockets", "Doohickies", "Weejets"];
-               public function get productNames():Array
+               private var _productNames:ArrayList = new ArrayList(["Widgets", 
"Thingys", "Sprockets", "Doohickies", "Weejets"]);
+               public function get productNames():ArrayList
                {
                        return _productNames;
                }
+               
+               private var _states:ArrayList = new ArrayList([
+                               "Massachusetts", "Vermont", "New Hampshire", 
"Maine", "Rhode Island", "Conneticutt"]);
+               
+               public function get states():ArrayList
+               {
+                       return _states;
+               }
        }
 }

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to