Updated DataGrid and MobileTrader examples to use ArrayList as dataProvider to 
DataGrid components.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/848f245d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/848f245d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/848f245d

Branch: refs/heads/master
Commit: 848f245dbb8730170193f2c2f7405cf74738d347
Parents: c472807
Author: Peter Ent <[email protected]>
Authored: Wed Oct 7 15:58:13 2015 -0400
Committer: Peter Ent <[email protected]>
Committed: Wed Oct 7 15:58:13 2015 -0400

----------------------------------------------------------------------
 .../DataGridExample/src/models/ProductsModel.as | 10 ++++--
 .../src/controller/AlertsViewController.as      |  5 +--
 .../src/controller/WatchListController.as       |  5 +--
 .../MobileTrader/src/models/AssetsModel.as      | 14 +++++++--
 .../MobileTrader/src/models/ProductsModel.as    | 32 +++++++++++---------
 .../MobileTrader/src/views/AlertsView.mxml      |  3 +-
 .../MobileTrader/src/views/AssetsView.mxml      |  4 +--
 .../MobileTrader/src/views/WatchListView.mxml   |  1 +
 8 files changed, 49 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/DataGridExample/src/models/ProductsModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataGridExample/src/models/ProductsModel.as 
b/examples/flexjs/DataGridExample/src/models/ProductsModel.as
index e3a42a9..8eab2fe 100644
--- a/examples/flexjs/DataGridExample/src/models/ProductsModel.as
+++ b/examples/flexjs/DataGridExample/src/models/ProductsModel.as
@@ -19,6 +19,7 @@
 package models
 {
        import org.apache.flex.events.EventDispatcher;
+       import org.apache.flex.collections.ArrayList;
        
        import products.Product;
        
@@ -26,16 +27,21 @@ package models
        {
                public function ProductsModel()
                {
+                       _productList = new ArrayList();
+                       _productList.source = source;
                }
 
-               private var _productList:Array = [
+               private var source:Array = [
                        new 
Product("ps100","Widgets",44,200,"assets/smallbluerect.jpg"),
                        new 
Product("tx200","Thingys",5,285,"assets/smallgreenrect.jpg"),
                        new 
Product("rz300","Sprockets",80,105,"assets/smallyellowrect.jpg"),
                        new 
Product("dh440","Doohickies",10,340,"assets/smallredrect.jpg"),
                        new 
Product("ps220","Weejets",35,190,"assets/smallorangerect.jpg")
                        ];
-               public function get productList():Array
+                       
+               private var _productList:ArrayList;
+               
+               public function get productList():ArrayList
                {
                        return _productList;
                }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/controller/AlertsViewController.as
----------------------------------------------------------------------
diff --git 
a/examples/flexjs/MobileTrader/src/controller/AlertsViewController.as 
b/examples/flexjs/MobileTrader/src/controller/AlertsViewController.as
index 716264d..254cd18 100644
--- a/examples/flexjs/MobileTrader/src/controller/AlertsViewController.as
+++ b/examples/flexjs/MobileTrader/src/controller/AlertsViewController.as
@@ -28,6 +28,7 @@ package controller
        import org.apache.flex.events.Event;
        import org.apache.flex.events.EventDispatcher;
        import org.apache.flex.utils.Timer;
+       import org.apache.flex.collections.ArrayList;
        
        import views.AlertsView;
        
@@ -111,13 +112,13 @@ package controller
                 */
                protected function timerHandler(event:*):void
                {
-                       var alerts:Array = (model as ProductsModel).alerts;
+                       var alerts:ArrayList = (model as ProductsModel).alerts;
                        
                        if (alerts.length == 0) return;
                        
                        for (var i:int=0; i < alerts.length; i++)
                        {
-                               var alert:Alert = alerts[i] as Alert;
+                               var alert:Alert = alerts.getItemAt(i) as Alert;
                                alert.message = "";
                                
                                if (alert.greaterThan) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/controller/WatchListController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/controller/WatchListController.as 
b/examples/flexjs/MobileTrader/src/controller/WatchListController.as
index 367b24f..5da5b70 100644
--- a/examples/flexjs/MobileTrader/src/controller/WatchListController.as
+++ b/examples/flexjs/MobileTrader/src/controller/WatchListController.as
@@ -27,6 +27,7 @@ package controller
        import org.apache.flex.events.Event;
        import org.apache.flex.events.EventDispatcher;
        import org.apache.flex.utils.Timer;
+       import org.apache.flex.collections.ArrayList;
        
        import views.StockView;
        import views.WatchListView;
@@ -121,13 +122,13 @@ package controller
                 */
                protected function timerHandler(event:*):void
                {
-                       var stockList:Array = (model as 
ProductsModel).watchList;
+                       var stockList:ArrayList = (model as 
ProductsModel).watchList;
                        
                        if (stockList.length == 0) return;
                        
                        if (index >= stockList.length) index = 0;
                        
-                       (model as 
ProductsModel).updateStockData(stockList[index] as Stock);
+                       (model as 
ProductsModel).updateStockData(stockList.getItemAt(index) as Stock);
                        index++;
                        
                        var newEvent:Event = new Event("update");

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/models/AssetsModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/models/AssetsModel.as 
b/examples/flexjs/MobileTrader/src/models/AssetsModel.as
index 8824bc5..674adfe 100755
--- a/examples/flexjs/MobileTrader/src/models/AssetsModel.as
+++ b/examples/flexjs/MobileTrader/src/models/AssetsModel.as
@@ -21,24 +21,34 @@ package models
        import org.apache.flex.core.IBeadModel;
        import org.apache.flex.core.IStrand;
        import org.apache.flex.events.EventDispatcher;
+       import org.apache.flex.collections.ArrayList;
        
        public class AssetsModel extends EventDispatcher implements IBeadModel
        {
                public function AssetsModel()
                {
                        super();
+                       _assetsData = new ArrayList();
+                       _assetsData.source = source;
                }
-               private var _assetsData:Array = [
+               private var source:Array = [
                        {label:"Net Worth:",    value:161984, netChange:-2.37},
                        {label:"Last Month:",   value:165915, netChange:10.98},
                        {label:"6 Months Ago:", value:145962, netChange:16.56},
                        {label:"Last Year:",    value:138972, netChange:8.36}
                ];
-               public function get assetsData():Array
+               private var _assetsData:ArrayList;
+               
+               public function get assetsData():ArrayList
                {
                        return _assetsData;
                }
                
+               public function get assetsDataAsArray():Array
+               {
+                   return source;
+               }
+               
                public function set strand(value:IStrand):void
                {
                        // not used

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/models/ProductsModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/models/ProductsModel.as 
b/examples/flexjs/MobileTrader/src/models/ProductsModel.as
index 7fb7a22..b6f91ad 100755
--- a/examples/flexjs/MobileTrader/src/models/ProductsModel.as
+++ b/examples/flexjs/MobileTrader/src/models/ProductsModel.as
@@ -25,6 +25,7 @@ package models
        import org.apache.flex.net.HTTPService;
        import org.apache.flex.collections.parsers.JSONInputParser;
        import org.apache.flex.collections.LazyCollection;
+       import org.apache.flex.collections.ArrayList;
                
        public class ProductsModel extends EventDispatcher implements IBeadModel
        {
@@ -36,6 +37,9 @@ package models
                        collection = new LazyCollection;
                        collection.inputParser = new JSONInputParser();
                        collection.itemConverter = new 
StockDataJSONItemConverter();
+                       
+                       _watchList = new ArrayList();
+                       _alerts = new ArrayList();
                }
                
                private var service:HTTPService;
@@ -64,16 +68,16 @@ package models
                        return _labelFields;
                }
                
-               private var _watchList:Array = [];
+               private var _watchList:ArrayList;
                
-               public function get watchList():Array
+               public function get watchList():ArrayList
                {
                        return _watchList;
                }
                
-               private var _alerts:Array = [];
+               private var _alerts:ArrayList;
                
-               public function get alerts():Array
+               public function get alerts():ArrayList
                {
                        return _alerts;
                }
@@ -82,14 +86,14 @@ package models
                {
                        for (var i:int =0; i < _alerts.length; i++)
                        {
-                               var alert:Alert = _alerts[i] as Alert;
+                               var alert:Alert = _alerts.getItemAt(i) as Alert;
                                if (alert.symbol == value.symbol) {
-                                       _alerts[i] = value;
+                                   _alerts.setItemAt(value, i);
                                        return;
                                }
                        }
                        
-                       _alerts.push(value);
+                       _alerts.addItem(value);
                        dispatchEvent(new Event("alertsUpdate"));
                }
                
@@ -97,13 +101,13 @@ package models
                {
                        for (var i:int=0; i < _watchList.length; i++)
                        {
-                               var stock:Stock = _watchList[i];
+                               var stock:Stock = _watchList.getItemAt(i) as 
Stock;
                                if (stock.symbol == symbol) return stock;
                        }
                        
                        stock = new Stock(symbol);
                        
-                       _watchList.push(stock);
+                       _watchList.addItem(stock);
                        dispatchEvent(new Event("update"));
                        
                        updateStockData(stock);
@@ -122,18 +126,18 @@ package models
                {
                        for (var i:int=0; i < alerts.length; i++)
                        {
-                               var alert:Alert = alerts[i] as Alert;
+                               var alert:Alert = alerts.getItemAt(i) as Alert;
                                if (stock.symbol == alert.symbol) {
-                                       alerts.splice(i,1);
+                                       alerts.removeItemAt(i);
                                        break;
                                }
                        }
                        
                        for (i=0; i < _watchList.length; i++)
                        {
-                               var s:Stock = _watchList[i] as Stock;
+                               var s:Stock = _watchList.getItemAt(i) as Stock;
                                if (stock.symbol == s.symbol) {
-                                       _watchList.splice(i,1);
+                                       _watchList.removeItemAt(i);
                                        break;
                                }
                        }
@@ -149,7 +153,7 @@ package models
                        var sym:String = responseData["Symbol"];
                        for (var i:int=0; i < _watchList.length; i++)
                        {
-                               var stock:Stock = _watchList[i];
+                               var stock:Stock = _watchList.getItemAt(i) as 
Stock;
                                if (stock.symbol == sym) {
                                        stock.updateFromData(responseData);
                                        break;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/views/AlertsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/views/AlertsView.mxml 
b/examples/flexjs/MobileTrader/src/views/AlertsView.mxml
index 2c112df..96c9b86 100755
--- a/examples/flexjs/MobileTrader/src/views/AlertsView.mxml
+++ b/examples/flexjs/MobileTrader/src/views/AlertsView.mxml
@@ -48,6 +48,7 @@ limitations under the License.
                        private function onAlertSet():void
                        {
                                dispatchEvent(new 
org.apache.flex.events.Event("alertSet"));
+                               dataGrid.model.dispatchEvent(new 
org.apache.flex.events.Event("dataProviderChanged"));
                        }
                ]]>
        </fx:Script>
@@ -64,7 +65,7 @@ limitations under the License.
                <js:TextButton text="Set" click="onAlertSet()" />
        </js:Container>
        
-       <js:DataGrid x="0" y="40" width="100%" height="200">
+       <js:DataGrid id="dataGrid" x="0" y="40" width="100%" height="200">
                <js:beads>
                        <js:SimpleBinding
                                eventName="alertsUpdate"

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/views/AssetsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/views/AssetsView.mxml 
b/examples/flexjs/MobileTrader/src/views/AssetsView.mxml
index 98e57e5..c71e257 100755
--- a/examples/flexjs/MobileTrader/src/views/AssetsView.mxml
+++ b/examples/flexjs/MobileTrader/src/views/AssetsView.mxml
@@ -43,7 +43,7 @@ limitations under the License.
 
        <js:Label text="Summary" height="10%" />
        
-       <js:DataGrid height="40%" width="100%">
+       <js:DataGrid height="150" width="100%">
                <js:style>
                        <js:SimpleCSSStyles top="0" left="0" right="0" />
                </js:style>
@@ -66,7 +66,7 @@ limitations under the License.
                <js:beads>
                        <js:ConstantBinding
                                sourceID="model"
-                               sourcePropertyName="assetsData"
+                               sourcePropertyName="assetsDataAsArray"
                                destinationPropertyName="dataProvider" />
                        <js:VerticalCategoryAxisBead categoryField="label" />
                        <js:HorizontalLinearAxisBead valueField="netChange" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/848f245d/examples/flexjs/MobileTrader/src/views/WatchListView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/views/WatchListView.mxml 
b/examples/flexjs/MobileTrader/src/views/WatchListView.mxml
index 8591aec..ec70e59 100755
--- a/examples/flexjs/MobileTrader/src/views/WatchListView.mxml
+++ b/examples/flexjs/MobileTrader/src/views/WatchListView.mxml
@@ -60,6 +60,7 @@ limitations under the License.
                        private function addSymbol():void
                        {
                                dispatchEvent(new 
org.apache.flex.events.Event("addSymbol"));
+                               dataGrid.model.dispatchEvent(new 
org.apache.flex.events.Event("dataProviderChanged"));
                        }
                        
                        public var selectedStockIndex:Number;

Reply via email to