Repository: flex-asjs Updated Branches: refs/heads/develop 284187bdf -> 7c0b48a53
MobileTrader example: AS example that cross-compiles to JS and can be executed on a mobile device using PhoneGap. Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7c0b48a5 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7c0b48a5 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7c0b48a5 Branch: refs/heads/develop Commit: 7c0b48a532906c6e2b3c04677171565448798fa7 Parents: 284187b Author: Peter Ent <[email protected]> Authored: Tue Apr 22 14:38:09 2014 -0400 Committer: Peter Ent <[email protected]> Committed: Tue Apr 22 14:38:09 2014 -0400 ---------------------------------------------------------------------- examples/MobileTrader/build.xml | 45 +++++ examples/MobileTrader/src/MobileTrader.mxml | 36 ++++ examples/MobileTrader/src/MyInitialView.mxml | 130 +++++++++++++++ .../MobileTrader/src/assets/arrow_left_24.png | Bin 0 -> 47785 bytes examples/MobileTrader/src/assets/background.png | Bin 0 -> 49376 bytes examples/MobileTrader/src/assets/logo.png | Bin 0 -> 55223 bytes examples/MobileTrader/src/controller/Feed.as | 162 ++++++++++++++++++ examples/MobileTrader/src/models/AssetsModel.as | 47 ++++++ .../MobileTrader/src/models/ProductsModel.as | 51 ++++++ examples/MobileTrader/src/models/Stock.as | 42 +++++ .../src/org/apache/flex/html/TabBar.as | 76 +++++++++ .../apache/flex/mobile/INavigationController.as | 47 ++++++ .../org/apache/flex/mobile/IViewController.as | 45 +++++ .../apache/flex/mobile/NavigationController.as | 107 ++++++++++++ .../src/org/apache/flex/mobile/TabController.as | 163 +++++++++++++++++++ .../org/apache/flex/mobile/ViewController.as | 68 ++++++++ .../MobileTrader/src/renderers/StockRenderer.as | 47 ++++++ examples/MobileTrader/src/views/AlertsView.mxml | 36 ++++ examples/MobileTrader/src/views/AssetsView.mxml | 83 ++++++++++ examples/MobileTrader/src/views/StockView.mxml | 45 +++++ .../MobileTrader/src/views/WatchListView.mxml | 114 +++++++++++++ examples/build.xml | 1 + 22 files changed, 1345 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/build.xml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/build.xml b/examples/MobileTrader/build.xml new file mode 100644 index 0000000..a7885f0 --- /dev/null +++ b/examples/MobileTrader/build.xml @@ -0,0 +1,45 @@ +<?xml version="1.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 + + http://www.apache.org/licenses/LICENSE-2.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. + +--> + + +<project name="mobiletrader" default="main" basedir="."> + <property name="FLEXJS_HOME" location="../.."/> + <property name="example" value="MobileTrader" /> + + <property file="${FLEXJS_HOME}/env.properties"/> + <property environment="env"/> + <property file="${FLEXJS_HOME}/build.properties"/> + <property name="FLEX_HOME" value="${FLEXJS_HOME}"/> + <property name="FALCON_HOME" value="${env.FALCON_HOME}"/> + <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/> + <property name="GOOG_HOME" value="${env.GOOG_HOME}"/> + + <include file="${basedir}/../build_example.xml" /> + + <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}"> + </target> + + <target name="clean"> + <delete dir="${basedir}/bin" failonerror="false" /> + <delete dir="${basedir}/bin-debug" failonerror="false" /> + <delete dir="${basedir}/bin-release" failonerror="false" /> + </target> + +</project> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/MobileTrader.mxml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/MobileTrader.mxml b/examples/MobileTrader/src/MobileTrader.mxml new file mode 100644 index 0000000..cc9a43c --- /dev/null +++ b/examples/MobileTrader/src/MobileTrader.mxml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!--- +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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. +// +//////////////////////////////////////////////////////////////////////////////// +--> +<basic:Application xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:local="*" + xmlns:models="models.*" + xmlns:basic="library://ns.apache.org/flexjs/basic" + > + + <basic:valuesImpl> + <basic:SimpleCSSValuesImpl /> + </basic:valuesImpl> + <basic:model> + <models:ProductsModel /> + </basic:model> + <basic:initialView> + <local:MyInitialView /> + </basic:initialView> +</basic:Application> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/MyInitialView.mxml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/MyInitialView.mxml b/examples/MobileTrader/src/MyInitialView.mxml new file mode 100644 index 0000000..12a7907 --- /dev/null +++ b/examples/MobileTrader/src/MyInitialView.mxml @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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 + +http://www.apache.org/licenses/LICENSE-2.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. + +--> +<basic:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:basic="library://ns.apache.org/flexjs/basic" + xmlns:views="views.*" + xmlns:mobile="org.apache.flex.mobile.*" + xmlns:html="org.apache.flex.html.*"> + <fx:Script> + <![CDATA[ + import org.apache.flex.core.UIBase; + + import views.AlertsView; + import views.AssetsView; + import views.WatchListView; + + private var currentView:UIBase; + + private function onTabChange() : void + { + navController.selectedIndex = tabBar.selectedIndex; + } + ]]> + </fx:Script> + + <fx:Style> + @namespace basic "library://ns.apache.org/flexjs/basic"; + @namespace mobile "org.apache.flex.mobile.*"; + @namespace views "views.*"; + + basic|Container { + background-color: #FFFFFF; + } + + .BackButton:hover { + background-image: url('assets/arrow_left_24.png'); + } + + .BackButton:active { + background-image: url('assets/arrow_left_24.png'); + } + + .BackButton { + background-image: url('assets/arrow_left_24.png'); + } + + .AssetsInner { + padding: 10px; + } + + views|AssetsView { + width: 480px; + height: 640px; + } + + views|WatchListView { + width: 480px; + height: 640px; + } + + views|StockView { + width: 480px; + height: 640px; + } + + views|AlertsView { + width: 480px; + height: 640px; + } + + .TabBar { + height: 50px; + } + + .redCell { + color: #FF0000; + } + + .greenCell { + color: #00FF00; + } + + </fx:Style> + + <mobile:TabController id="navController" width="320" height="480" x="0" y="0" > + <mobile:views> + <mobile:NavigationController> + <mobile:views> + <views:AssetsView id="assetsView" /> + </mobile:views> + </mobile:NavigationController> + <mobile:NavigationController> + <mobile:views> + <views:WatchListView id="watchListView" /> + </mobile:views> + </mobile:NavigationController> + <mobile:NavigationController> + <mobile:views> + <views:AlertsView id="alertsView" /> + </mobile:views> + </mobile:NavigationController> + </mobile:views> + </mobile:TabController> + + <html:TabBar id="tabBar" width="320" x="0" y="480" change="onTabChange()" className="TabBar"> + <html:beads> + <basic:ConstantBinding + sourceID="applicationModel" + sourcePropertyName="tabList" + destinationPropertyName="dataProvider" /> + </html:beads> + </html:TabBar> + +</basic:ViewBase> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/assets/arrow_left_24.png ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/assets/arrow_left_24.png b/examples/MobileTrader/src/assets/arrow_left_24.png new file mode 100755 index 0000000..a3019ba Binary files /dev/null and b/examples/MobileTrader/src/assets/arrow_left_24.png differ http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/assets/background.png ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/assets/background.png b/examples/MobileTrader/src/assets/background.png new file mode 100755 index 0000000..87bbd59 Binary files /dev/null and b/examples/MobileTrader/src/assets/background.png differ http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/assets/logo.png ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/assets/logo.png b/examples/MobileTrader/src/assets/logo.png new file mode 100755 index 0000000..0fb0f21 Binary files /dev/null and b/examples/MobileTrader/src/assets/logo.png differ http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/controller/Feed.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/controller/Feed.as b/examples/MobileTrader/src/controller/Feed.as new file mode 100755 index 0000000..043f31a --- /dev/null +++ b/examples/MobileTrader/src/controller/Feed.as @@ -0,0 +1,162 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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. +// +////////////////////////////////////////////////////////////////////////////////s +package controller +{ +// import flash.events.TimerEvent; + + import models.Stock; + + import org.apache.flex.core.IBeadModel; + import org.apache.flex.core.IStrand; + import org.apache.flex.events.Event; + import org.apache.flex.events.EventDispatcher; + import org.apache.flex.utils.Timer; + + [Event("change",org.apache.flex.events.Event)] + + public class Feed extends EventDispatcher implements IBeadModel + { + protected var index:int = 0; + + protected var updateOrder:Array = [6,4,1,7,0,3,2,5]; // used to simulated randomness of updates + + protected var timer:Timer; + + protected var stockMap:Object; + + private var _stockList:Array; + public function get stockList():Array + { + return _stockList; + } + public function set stockList(value:Array):void + { + _stockList = value; + } + + public function set strand(value:IStrand):void + { + // not used + } + + public function Feed() + { + stockMap = new Object(); + stockList = new Array(); + + stockList.push(new Stock("XOM", 81.39)); + stockList.push(new Stock("WMT", 51.47)); + stockList.push(new Stock("CVX", 102.93)); + stockList.push(new Stock("AIG", 36.01)); + stockList.push(new Stock("IBM", 155.49)); + stockList.push(new Stock("SAP", 57.53)); + stockList.push(new Stock("MOT", 41.50)); + stockList.push(new Stock("MCD", 73)); + + var stockCount:int = stockList.length; + + for (var k:int = 0; k < stockCount; k++) + { + var s:Stock = stockList[k] as Stock; + s.open = s.last; + s.high = s.last; + s.low = s.last; + s.change = 0; + stockMap[s.symbol] = s; + } + + // Simulate history for the last 2 minutes + for (var i:int=0; i < 120 ; i++) + { + for (var j:int=0 ; j<stockCount ; j++) + { + simulateChange(stockList[j] as Stock, false); + } + } + timer = new Timer(1000 / 4, 0); + timer.addEventListener("timer", timerHandler); + } + + public function subscribe():void + { + if (!timer.running) + { + timer.start(); + } + } + + public function unsubscribe():void + { + if (timer.running) + { + timer.stop(); + } + } + + protected function timerHandler(event:*):void + { + if (index >= stockList.length) index = 0; + simulateChange(stockList[updateOrder[index]] as Stock, true); + index++; + + var newEvent:Event = new Event("update"); + this.dispatchEvent(newEvent); + } + + protected function simulateChange(stock:Stock, removeFirst:Boolean = true):void + { + var maxChange:Number = stock.open * 0.005; + var change:Number = maxChange - Math.random() * maxChange * 2; + + change = change == 0 ? 0.01 : change; + + var newValue:Number = stock.last + change; + + if (newValue > stock.open * 1.15 || newValue < stock.open * 0.85) + { + change = -change; + newValue = stock.last + change; + } + + stock.change = change; + stock.last = newValue; + + if (stock.last > stock.high) + { + stock.high = stock.last; + } + else if (stock.last < stock.low || stock.low == 0) + { + stock.low = stock.last; + } + + if (!stock.history) + { + stock.history = new Array(); + } + if (removeFirst) + { + stock.history.splice(1,0); + } + stock.history.push({high: stock.high, low: stock.low, open: stock.open, last: stock.last}); + + } + + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/models/AssetsModel.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/models/AssetsModel.as b/examples/MobileTrader/src/models/AssetsModel.as new file mode 100644 index 0000000..8824bc5 --- /dev/null +++ b/examples/MobileTrader/src/models/AssetsModel.as @@ -0,0 +1,47 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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 models +{ + import org.apache.flex.core.IBeadModel; + import org.apache.flex.core.IStrand; + import org.apache.flex.events.EventDispatcher; + + public class AssetsModel extends EventDispatcher implements IBeadModel + { + public function AssetsModel() + { + super(); + } + private var _assetsData: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 + { + return _assetsData; + } + + public function set strand(value:IStrand):void + { + // not used + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/models/ProductsModel.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/models/ProductsModel.as b/examples/MobileTrader/src/models/ProductsModel.as new file mode 100644 index 0000000..dd1cf2e --- /dev/null +++ b/examples/MobileTrader/src/models/ProductsModel.as @@ -0,0 +1,51 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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 models +{ + import org.apache.flex.events.EventDispatcher; + + public class ProductsModel extends EventDispatcher + { + public function ProductsModel() + { + } + + private var _tabList:Array = ["Assets", "Watch", "Alerts"]; + public function get tabList():Array + { + return _tabList; + } + + private var _stockData:Array = [ + {stock:"XOM", open:81.39, last:86.22, high:88.40, low:81.30, image:""}, + {stock:"WMT", open:51.47, last:52.00, high:52.50, low:51.04, image:""}, + {stock:"CVX", open:102.93, last:104.13, high:104.41, low:101.15, image:""} + ]; + public function get stockData():Array + { + return _stockData; + } + + private var _labelFields:Array = [ "id", "title", "detail" ]; + public function get labelFields():Array + { + return _labelFields; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/models/Stock.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/models/Stock.as b/examples/MobileTrader/src/models/Stock.as new file mode 100755 index 0000000..49e63d2 --- /dev/null +++ b/examples/MobileTrader/src/models/Stock.as @@ -0,0 +1,42 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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 models +{ + public class Stock + { + public var symbol:String; + public var name:String; + public var low:Number; + public var high:Number; + public var open:Number; + public var last:Number; + public var change:Number = 0; + public var date:Date; + + public var history:Array; + + public function Stock(symbol:String, last:Number) + { + this.symbol = symbol; + this.last = last; + } + + } + +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/org/apache/flex/html/TabBar.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/org/apache/flex/html/TabBar.as b/examples/MobileTrader/src/org/apache/flex/html/TabBar.as new file mode 100644 index 0000000..0f354d8 --- /dev/null +++ b/examples/MobileTrader/src/org/apache/flex/html/TabBar.as @@ -0,0 +1,76 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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.html +{ + + /** + * The DataGrid class displays a set of buttons that can be used to + * switch between navigation panels. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class TabBar extends ButtonBar + { + /** + * Constructor + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function TabBar() + { + super(); + } + + /** + * Sets the width of the TabBar. + * + * @param value The new width in pixels. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + override public function set width(value:Number):void + { + super.width = value; + } + + /** + * Sets the height of the TabBar. + * + * @param value The new height in pixels. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + override public function set height(value:Number):void + { + super.height = value; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/org/apache/flex/mobile/INavigationController.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/org/apache/flex/mobile/INavigationController.as b/examples/MobileTrader/src/org/apache/flex/mobile/INavigationController.as new file mode 100644 index 0000000..6bd90bc --- /dev/null +++ b/examples/MobileTrader/src/org/apache/flex/mobile/INavigationController.as @@ -0,0 +1,47 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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.mobile +{ + /** + * The INavigationController is an interface that should be implemented by + * any class that performs changes of views. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public interface INavigationController + { + /** + * Pushes the next view onto the navigation stack. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + function push(value:IViewController):void; + + /** + * Pops the top-most IViewController from the navigation stack. + */ + function pop():void; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/org/apache/flex/mobile/IViewController.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/org/apache/flex/mobile/IViewController.as b/examples/MobileTrader/src/org/apache/flex/mobile/IViewController.as new file mode 100644 index 0000000..422335b --- /dev/null +++ b/examples/MobileTrader/src/org/apache/flex/mobile/IViewController.as @@ -0,0 +1,45 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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.mobile +{ + /** + * The IViewController interface should be implemented by any class that + * can be used with an INavigationController. An IViewController is + * typically a screen on a mobile device that may be pushed or popped + * by the navigation controller as the user moves thru the application. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public interface IViewController + { + /** + * The IViewController's navigation control. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + function set navigationController(value:INavigationController):void; + function get navigationController():INavigationController; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/org/apache/flex/mobile/NavigationController.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/org/apache/flex/mobile/NavigationController.as b/examples/MobileTrader/src/org/apache/flex/mobile/NavigationController.as new file mode 100644 index 0000000..59dec03 --- /dev/null +++ b/examples/MobileTrader/src/org/apache/flex/mobile/NavigationController.as @@ -0,0 +1,107 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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.mobile +{ + import org.apache.flex.core.UIBase; + + /** + * The NavigationController is an interface that should be implemented by + * any class that performs changes of views. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class NavigationController extends UIBase implements INavigationController + { + /** + * Controller. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function NavigationController() + { + super(); + + _views = []; + } + + private var _views:Array; + + /** + * The current set of views in the navigation stack. The last entry is + * the top-most (visible) view controller. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get views():Array + { + return _views; + } + public function set views(value:Array):void + { + if (_views == null) _views = []; + + for(var i:int=0; i < value.length; i++) { + var view:IViewController = value[i] as IViewController; + if (view) { + push(view); + } + } + } + + /** + * Pushes the next view onto the navigation stack. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function push(nextView:IViewController):void + { + nextView.navigationController = this; + _views.push(nextView); + + addElement(nextView); + } + /** + * Pops the top-most view from the navigation stack. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function pop():void + { + if (_views.length > 1) { + var lastView:Object = _views.pop(); + removeElement(lastView); + } + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/org/apache/flex/mobile/TabController.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/org/apache/flex/mobile/TabController.as b/examples/MobileTrader/src/org/apache/flex/mobile/TabController.as new file mode 100644 index 0000000..2f91f7c --- /dev/null +++ b/examples/MobileTrader/src/org/apache/flex/mobile/TabController.as @@ -0,0 +1,163 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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.mobile +{ + import org.apache.flex.core.UIBase; + import org.apache.flex.events.Event; + import org.apache.flex.html.ButtonBar; + + /** + * The TabController class is used to navigate between sections of an + * application. A TabBar is used to select which INavigationController + * child of the TabController should be presented. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class TabController extends UIBase + { + /** + * Constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function TabController() + { + super(); + } + + private var _views : Array; + private var _buttonBar:ButtonBar; + private var _currentView:UIBase; + private var _selectedIndex:Number; + + /** + * The components under tab management. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get views():Array + { + return _views; + } + public function set views(value:Array):void + { + _views = value; + + if (_currentView) { + removeElement(_currentView); + } + + _currentView = views[0]; + showCurrentView(); + } + + /** + * The currently selected tab view. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get currentView():UIBase + { + return _currentView; + } + + /** + * The zero-based index of the currently active tab. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get selectedIndex():Number + { + return _selectedIndex; + } + public function set selectedIndex(value:Number):void + { + if (value < _views.length) { + if (_currentView) { + removeElement(_currentView); + } + _selectedIndex = value; + _currentView = views[value]; + showCurrentView(); + } + } + + /** + * The TabBar being used for navigation. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get buttonBar():ButtonBar + { + return _buttonBar; + } + public function set buttonBar(value:ButtonBar):void + { + if (value != _buttonBar) { + if (_buttonBar) { + _buttonBar.removeEventListener("change",handleButtonBarChange); + } + _buttonBar = value; + _buttonBar.addEventListener("change",handleButtonBarChange); + } + } + + /** + * @private + */ + private function showCurrentView() : void + { + _currentView.width = this.width; + _currentView.height = this.height; + addElement(_currentView); + } + + /** + * @private + */ + override public function addElement(c:Object):void + { + super.addElement(c); + } + + private function handleButtonBarChange(event:Event):void + { + var newIndex:Number = _buttonBar.selectedIndex; + selectedIndex = newIndex; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/org/apache/flex/mobile/ViewController.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/org/apache/flex/mobile/ViewController.as b/examples/MobileTrader/src/org/apache/flex/mobile/ViewController.as new file mode 100644 index 0000000..9148717 --- /dev/null +++ b/examples/MobileTrader/src/org/apache/flex/mobile/ViewController.as @@ -0,0 +1,68 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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.mobile +{ + import org.apache.flex.html.Container; + + /** + * The IViewController interface should be implemented by any class that + * can be used with an INavigationController. An IViewController is + * typically a screen on a mobile device that may be pushed or popped + * by the navigation controller as the user moves thru the application. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class ViewController extends Container implements IViewController + { + /** + * Constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function ViewController() + { + super(); + } + + private var _navigationController:INavigationController; + + /** + * The IViewController's navigation control. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get navigationController():INavigationController + { + return _navigationController; + } + public function set navigationController(value:INavigationController):void + { + _navigationController = value; + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/renderers/StockRenderer.as ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/renderers/StockRenderer.as b/examples/MobileTrader/src/renderers/StockRenderer.as new file mode 100644 index 0000000..afba26f --- /dev/null +++ b/examples/MobileTrader/src/renderers/StockRenderer.as @@ -0,0 +1,47 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// 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 +// +// http://www.apache.org/licenses/LICENSE-2.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 renderers +{ + import org.apache.flex.html.supportClasses.StringItemRenderer; + + public class StockRenderer extends StringItemRenderer + { + public function StockRenderer() + { + super(); + } + + override public function set data(value:Object):void + { + super.data = value; + + var n1:Number = Number(value[labelField]); + if (!isNaN(n1)) { + n1 = Math.round(n1*100)/100.0; + + // something to keep in mind when using FlexJS for cross-platform + // use: make sure that public properties are used versus protected + // functions or properties. in most cases, internal vars and functions + // will be platform-specific whereas public properties and function + // should be cross-platform. + text = String(n1); + } + } + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/views/AlertsView.mxml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/views/AlertsView.mxml b/examples/MobileTrader/src/views/AlertsView.mxml new file mode 100644 index 0000000..cf1d0a0 --- /dev/null +++ b/examples/MobileTrader/src/views/AlertsView.mxml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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 + +http://www.apache.org/licenses/LICENSE-2.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. + +--> +<mobile:ViewController xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:basic="library://ns.apache.org/flexjs/basic" + xmlns:mobile="org.apache.flex.mobile.*" + xmlns:local="*" + className="AlertsView"> + + <fx:Script> + <![CDATA[ + ]]> + </fx:Script> + + <basic:Image source="assets/background.png" x="0" y="0" width="320" height="55" /> + <basic:Image source="assets/logo.png" x="0" y="0" width="218" height="55" /> + + <basic:Label text="Alerts View" x="20" y="100" /> + +</mobile:ViewController> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/views/AssetsView.mxml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/views/AssetsView.mxml b/examples/MobileTrader/src/views/AssetsView.mxml new file mode 100644 index 0000000..21c0ae6 --- /dev/null +++ b/examples/MobileTrader/src/views/AssetsView.mxml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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 + +http://www.apache.org/licenses/LICENSE-2.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. + +--> +<mobile:ViewController xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:basic="library://ns.apache.org/flexjs/basic" + xmlns:mobile="org.apache.flex.mobile.*" + xmlns:models="models.*" + xmlns:local="*" + className="AssetsView" xmlns:tests="tests.*"> + <fx:Script> + <![CDATA[ + + ]]> + </fx:Script> + + <mobile:model> + <models:AssetsModel /> + </mobile:model> + + <basic:Image source="assets/background.png" x="0" y="0" width="320" height="55" /> + <basic:Image source="assets/logo.png" x="0" y="0" width="218" height="55" /> + + <basic:Container x="0" y="55" width="480" className="AssetsInner"> + <basic:beads> + <basic:NonVirtualVerticalLayout /> + </basic:beads> + + <basic:Label text="Summary" /> + + <basic:DataGrid width="320" height="200"> + <basic:beads> + <basic:ConstantBinding + sourceID="model" + sourcePropertyName="assetsData" + destinationPropertyName="dataProvider" /> + </basic:beads> + <basic:columns> + <basic:DataGridColumn label="" dataField="label" /> + <basic:DataGridColumn label="" dataField="value" /> + <basic:DataGridColumn label="" dataField="netChange" /> + </basic:columns> + </basic:DataGrid> + + <basic:Label text="Performance History" /> + + <!--<basic:BarChart id="barChart" width="320" height="250"> + <basic:beads> + <basic:ConstantBinding + sourceID="model" + sourcePropertyName="assetsData" + destinationPropertyName="dataProvider" /> + <basic:XAxisBead labelField="title" /> + </basic:beads> + <basic:series> + <basic:BarChartSeries yField="value" + fillColor="0xFF964D"> + <basic:itemRenderer> + <fx:Component> + <basic:BoxItemRenderer /> + </fx:Component> + </basic:itemRenderer> + </basic:BarChartSeries> + </basic:series> + </basic:BarChart>--> + + </basic:Container> +</mobile:ViewController> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/views/StockView.mxml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/views/StockView.mxml b/examples/MobileTrader/src/views/StockView.mxml new file mode 100644 index 0000000..0b9447d --- /dev/null +++ b/examples/MobileTrader/src/views/StockView.mxml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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 + +http://www.apache.org/licenses/LICENSE-2.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. + +--> +<mobile:ViewController xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:basic="library://ns.apache.org/flexjs/basic" + xmlns:mobile="org.apache.flex.mobile.*" + xmlns:apache="org.apache.flex.html.beads.*" + xmlns:local="*" + className="StockView"> + + <fx:Script> + <![CDATA[ + private function onBackClick() : void + { + navigationController.pop(); + } + ]]> + </fx:Script> + + <basic:Image source="assets/background.png" x="0" y="0" width="320" height="55" /> + <basic:Button x="0" y="5" width="45" height="45" className="BackButton" click="onBackClick()"> + <basic:beads> + <apache:ImageButtonView /> + </basic:beads> + </basic:Button> + <basic:Image source="assets/logo.png" x="47" y="0" width="218" height="55" /> + + <basic:Label text="Stock View" x="20" y="100" /> +</mobile:ViewController> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/MobileTrader/src/views/WatchListView.mxml ---------------------------------------------------------------------- diff --git a/examples/MobileTrader/src/views/WatchListView.mxml b/examples/MobileTrader/src/views/WatchListView.mxml new file mode 100644 index 0000000..8be0bfe --- /dev/null +++ b/examples/MobileTrader/src/views/WatchListView.mxml @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + +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 + +http://www.apache.org/licenses/LICENSE-2.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. + +--> +<mobile:ViewController xmlns:fx="http://ns.adobe.com/mxml/2009" + xmlns:basic="library://ns.apache.org/flexjs/basic" + xmlns:mobile="org.apache.flex.mobile.*" + xmlns:controller="controller.*" + xmlns:local="*" + className="WatchListView" + xmlns:renderers="renderers.*"> + + <fx:Script> + <![CDATA[ + import org.apache.flex.events.Event; + + private function onSelectStock():void + { + var stockView:StockView = new StockView(); + navigationController.push(stockView); + } + + private function onStockChange(event:org.apache.flex.events.Event):void + { + + } + + override public function addedToParent():void + { + super.addedToParent(); + + var feed:Feed = this.model as Feed; + feed.addEventListener("update",onStockChange); + feed.subscribe(); + } + ]]> + </fx:Script> + + <mobile:model> + <controller:Feed /> + </mobile:model> + + <basic:Image source="assets/background.png" x="0" y="0" width="320" height="55" /> + <basic:Image source="assets/logo.png" x="0" y="0" width="218" height="55" /> + + <basic:Container x="0" y="55" width="320" className="WatchListInner"> + <basic:beads> + <basic:NonVirtualVerticalLayout /> + </basic:beads> + + <basic:DataGrid width="320" height="380" change="onSelectStock()"> + <basic:beads> + <basic:SimpleBinding + eventName="update" + sourceID="model" + sourcePropertyName="stockList" + destinationPropertyName="dataProvider" /> + </basic:beads> + <basic:columns> + <basic:DataGridColumn label="Symbol" dataField="symbol"> + <basic:itemRenderer> + <fx:Component> + <basic:StringItemRenderer /> + </fx:Component> + </basic:itemRenderer> + </basic:DataGridColumn> + <basic:DataGridColumn label="Open" dataField="open"> + <basic:itemRenderer> + <fx:Component> + <renderers:StockRenderer /> + </fx:Component> + </basic:itemRenderer> + </basic:DataGridColumn> + <basic:DataGridColumn label="Last" dataField="last" > + <basic:itemRenderer> + <fx:Component> + <renderers:StockRenderer /> + </fx:Component> + </basic:itemRenderer> + </basic:DataGridColumn> + <basic:DataGridColumn label="High" dataField="high" > + <basic:itemRenderer> + <fx:Component> + <renderers:StockRenderer /> + </fx:Component> + </basic:itemRenderer> + </basic:DataGridColumn> + <basic:DataGridColumn label="Low" dataField="low" > + <basic:itemRenderer> + <fx:Component> + <renderers:StockRenderer /> + </fx:Component> + </basic:itemRenderer> + </basic:DataGridColumn> + </basic:columns> + </basic:DataGrid> + </basic:Container> + +</mobile:ViewController> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7c0b48a5/examples/build.xml ---------------------------------------------------------------------- diff --git a/examples/build.xml b/examples/build.xml index 9aa255c..9a47b8b 100644 --- a/examples/build.xml +++ b/examples/build.xml @@ -85,6 +85,7 @@ <ant dir="${basedir}/FormatExample"/> <ant dir="${basedir}/LanguageTests"/> <ant dir="${basedir}/ListsTest"/> + <ant dir="${basedir}/MobileTrader"/> <ant dir="${basedir}/StatesTest"/> <ant dir="${basedir}/StockQuote"/> <ant dir="${basedir}/BarChartExample"/>
