You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2016/10/27 15:16:06 UTC

[05/17] git commit: [flex-asjs] [refs/heads/feature-autobuild/example-maven-dirs] - - Refactored the directory structure of the example projects to be maven-style

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/models/StatsModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/models/StatsModel.as b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/models/StatsModel.as
new file mode 100644
index 0000000..d6d1254
--- /dev/null
+++ b/examples/flexjs/FlexWebsiteStatsViewer/src/main/flex/models/StatsModel.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.Event;
+	import org.apache.flex.events.EventDispatcher;
+	
+	public class StatsModel extends EventDispatcher
+	{
+		private var _lastThirtyDaysUsers:Array;
+		public function StatsModel()
+		{
+			
+		}
+		
+		[Bindable("lastThirtyDaysDataChanged")]
+		public function get lastThirtyDaysUsers():Array
+		{
+			return _lastThirtyDaysUsers;
+		}
+		
+		public function set lastThirtyDaysUsers(v:Array):void
+		{
+			if(v != _lastThirtyDaysUsers)
+			{
+				_lastThirtyDaysUsers = v;
+				dispatchEvent(new Event("lastThirtyDaysDataChanged"));
+			}
+		}
+		
+		private var _labelFields:Array = [ "date", "users"];
+		public function get labelFields():Array
+		{
+			return _labelFields;
+		}
+		
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/FlexWebsiteStatsViewer/src/models/StatsModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexWebsiteStatsViewer/src/models/StatsModel.as b/examples/flexjs/FlexWebsiteStatsViewer/src/models/StatsModel.as
deleted file mode 100644
index d6d1254..0000000
--- a/examples/flexjs/FlexWebsiteStatsViewer/src/models/StatsModel.as
+++ /dev/null
@@ -1,55 +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
-//
-//      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.Event;
-	import org.apache.flex.events.EventDispatcher;
-	
-	public class StatsModel extends EventDispatcher
-	{
-		private var _lastThirtyDaysUsers:Array;
-		public function StatsModel()
-		{
-			
-		}
-		
-		[Bindable("lastThirtyDaysDataChanged")]
-		public function get lastThirtyDaysUsers():Array
-		{
-			return _lastThirtyDaysUsers;
-		}
-		
-		public function set lastThirtyDaysUsers(v:Array):void
-		{
-			if(v != _lastThirtyDaysUsers)
-			{
-				_lastThirtyDaysUsers = v;
-				dispatchEvent(new Event("lastThirtyDaysDataChanged"));
-			}
-		}
-		
-		private var _labelFields:Array = [ "date", "users"];
-		public function get labelFields():Array
-		{
-			return _labelFields;
-		}
-		
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/HelloWorld/src/HelloWorld.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/HelloWorld/src/HelloWorld.mxml b/examples/flexjs/HelloWorld/src/HelloWorld.mxml
deleted file mode 100644
index 70d8d20..0000000
--- a/examples/flexjs/HelloWorld/src/HelloWorld.mxml
+++ /dev/null
@@ -1,30 +0,0 @@
-<?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.
-
--->
-<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-                   xmlns:js="library://ns.apache.org/flexjs/basic" >
-    <js:valuesImpl>
-        <js:SimpleCSSValuesImpl />
-    </js:valuesImpl>
-    <js:initialView>
-        <js:View>
-        	<js:Label text="Hello World!" />
-        </js:View>
-    </js:initialView>
-</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/HelloWorld/src/main/flex/HelloWorld.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/HelloWorld/src/main/flex/HelloWorld.mxml b/examples/flexjs/HelloWorld/src/main/flex/HelloWorld.mxml
new file mode 100644
index 0000000..70d8d20
--- /dev/null
+++ b/examples/flexjs/HelloWorld/src/main/flex/HelloWorld.mxml
@@ -0,0 +1,30 @@
+<?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.
+
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+                   xmlns:js="library://ns.apache.org/flexjs/basic" >
+    <js:valuesImpl>
+        <js:SimpleCSSValuesImpl />
+    </js:valuesImpl>
+    <js:initialView>
+        <js:View>
+        	<js:Label text="Hello World!" />
+        </js:View>
+    </js:initialView>
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MapSearch/src/MapSearch.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MapSearch/src/MapSearch.mxml b/examples/flexjs/MapSearch/src/MapSearch.mxml
deleted file mode 100644
index af06140..0000000
--- a/examples/flexjs/MapSearch/src/MapSearch.mxml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?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.
-//
-////////////////////////////////////////////////////////////////////////////////
--->
-<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-				   xmlns:local="*"
-				   xmlns:models="models.*"
-				   xmlns:js="library://ns.apache.org/flexjs/basic" 
-				   >
-	
-	<!-- This application demonstrates how to use the Google MAP API
-	on both the AIR and JavaScript/browser platform. After cross-
-	compiling this application for JavaScript, edit the index.html
-	file and include your Google developer API token.
-	-->
-	
-	<js:valuesImpl>
-		<js:SimpleCSSValuesImpl />
-	</js:valuesImpl>
-	<js:initialView>
-		<local:MyInitialView />
-	</js:initialView>
-	<js:model>
-		<models:MyModel />
-	</js:model>
-	<js:beads>
-		<js:MixinManager />
-	</js:beads>
-	
-</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MapSearch/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MapSearch/src/MyInitialView.mxml b/examples/flexjs/MapSearch/src/MyInitialView.mxml
deleted file mode 100644
index 54ec4a2..0000000
--- a/examples/flexjs/MapSearch/src/MyInitialView.mxml
+++ /dev/null
@@ -1,211 +0,0 @@
-<?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.
-
--->
-<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
-				xmlns:js="library://ns.apache.org/flexjs/basic"
-                xmlns:google="library://ns.apache.org/flexjs/google"
-				xmlns:local="*"
-				initComplete="initControls()">
-	<fx:Script>
-		<![CDATA[		
-			import models.MyModel;			
-			import org.apache.flex.events.Event;
-			
-			import google.maps.places.PlaceResult;
-			import google.maps.Marker;
-			
-			private function initControls() : void
-			{
-				
-			}
-			
-			/**
-			 * Called when the map is ready for use. This function adds a variety of event
-			 * listners, some of which will trigger a new search.
-			 */
-			private function onMapReady() : void
-			{
-				map.addEventListener("centered", onMapCenteredOrChanged);
-				map.addEventListener("boundsChanged", onMapCenteredOrChanged);
-				map.addEventListener("zoomChanged", onMapCenteredOrChanged);
-				map.addEventListener("dragEnd", onMapCenteredOrChanged);
-				map.addEventListener("markerClicked", onMarkerClicked);
-				
-				// Listen for changes to the search results on the map's model.
-				map.model.addEventListener("searchResultsChanged", onSearchResults);
-			}
-			
-			private var selectedCity:String;
-			
-			/**
-			 * Triggered by a change in the drop list with a new city selected. This
-			 * will also update the input fields.
-			 */
-			private function changeCity(event:org.apache.flex.events.Event) : void
-			{
-				var index:int = list.selectedIndex;
-				mapLocation.text = MyModel(applicationModel).cities[index];
-				codeAddress();
-			}
-			
-			private function codeAddress() : void
-			{
-				map.markAddress(mapLocation.text);
-			}
-			
-			private function searchOnMap() : void
-			{
-				map.nearbySearch(search.text);
-			}
-			
-			private function clearSearchResults() : void
-			{
-				map.clearSearchResults();
-			}
-			
-			private function orientMap() : void
-			{
-				map.centerOnAddress(mapLocation.text);
-			}
-			
-			/**
-			 * Called when the map has been re-centered or moved. The search results are
-			 * cleared and a new search is triggered.
-			 */
-			private function onMapCenteredOrChanged(event:org.apache.flex.events.Event):void
-			{
-				clearSearchResults();
-				if (search.text) searchOnMap();
-			}
-			
-			/**
-			 * Called when search results are available in the map's model. This function
-			 * transfers those results to the application's model which is bound to the
-			 * List component.
-			 */
-			private function onSearchResults(event:org.apache.flex.events.Event):void
-			{
-				var searchResults:Array = map.searchResults;
-				MyModel(applicationModel).searchResults = searchResults;
-			}
-			
-			/**
-			 * Called when a marker on the map has been selected. This function centers
-			 * the map on the marker and, if necessary, zooms the map in for closer
-			 * inspection.
-			 */
-			private function onMarkerClicked(event:org.apache.flex.events.Event):void
-			{
-				var marker:Marker = map.selectedMarker as Marker;
-				map.setZoom(12);
-				map.setCenter(marker.getPosition());
-			}
-			
-		]]>
-	</fx:Script>
-	
-		<fx:Style>
-		@namespace basic "library://ns.apache.org/flexjs/basic";
-		
-		.FormLabel {
-			font-weight: bold;
-			font-size: 12;
-			padding-left: 20px;
-			padding-right: 20px;
-			padding-top: 20px;
-			padding-bottom: 20px;
-			height: 22px;
-		}
-		
-		.FormButton {
-			font-weight: bold;
-			font-size: 12;
-			color: #000000;
-			background-color: #FFFFFF;
-			border-style: solid;
-			padding-top: 5px;
-			padding-bottom: 5px;
-			padding-left: 5px;
-			padding-right: 5px;
-		}
-		
-		.FormInput {
-			font-weight: normal;
-			font-size: 12;
-			color: #0000DE;
-			padding: 0px;
-			height: 20px;
-		}
-		
-		.InnerBox {
-			margin-top: 11px;
-			margin-bottom: 10px;
-		}
-	</fx:Style>
-	
-	<js:beads>
-		<js:ViewDataBinding />
-	</js:beads>
-	
-	
-	<js:Container x="5" y="5" className="topContainer" >
-		<js:beads>
-			<js:VerticalLayout />
-		</js:beads>
-		
-		<js:Container className="InnerBox">
-			<js:beads>
-				<js:HorizontalLayout />
-			</js:beads>
-			<js:Label id="label1" text="Location:" className="FormLabel"  />
-			<js:TextInput id="mapLocation" />
-			<js:TextButton text="Go" id="goButton" click="orientMap()" className="FormButton" />
-			
-			<js:DropDownList id="list" width="100" height="20"
-								change="changeCity(event)"
-								dataProvider="{MyModel(applicationModel).cities}" />
-		</js:Container>
-		
-		<google:Map id="map" width="450" height="300" className="MainMap"
-				   token="AIzaSyDkQgg2iojLCYeuW6hK7DkuAHD-SwJJhdE" 
-				   ready="onMapReady()"/>
-		
-		<js:Container className="InnerBox">
-			<js:beads>
-				<js:HorizontalLayout />
-			</js:beads>
-			<js:Label id="label2" text="Search on Map:" className="FormLabel" />
-			<js:TextInput id="search" />
-			<js:TextButton text="Find" click="searchOnMap()" className="FormButton" />
-			<js:TextButton text="Clear"click="clearSearchResults()" className="FormButton" />
-		</js:Container>
-		
-		<js:List id="resultsList" width="450" height="200">
-			<js:beads>
-				<js:SimpleBinding
-					sourceID="applicationModel"
-					sourcePropertyName="searchResults"
-					eventName="searchResultsChanged"
-					destinationPropertyName="dataProvider" />
-			</js:beads>
-		</js:List>
-		
-	</js:Container>
-	
-</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MapSearch/src/main/flex/MapSearch.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MapSearch/src/main/flex/MapSearch.mxml b/examples/flexjs/MapSearch/src/main/flex/MapSearch.mxml
new file mode 100644
index 0000000..af06140
--- /dev/null
+++ b/examples/flexjs/MapSearch/src/main/flex/MapSearch.mxml
@@ -0,0 +1,46 @@
+<?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.
+//
+////////////////////////////////////////////////////////////////////////////////
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+				   xmlns:local="*"
+				   xmlns:models="models.*"
+				   xmlns:js="library://ns.apache.org/flexjs/basic" 
+				   >
+	
+	<!-- This application demonstrates how to use the Google MAP API
+	on both the AIR and JavaScript/browser platform. After cross-
+	compiling this application for JavaScript, edit the index.html
+	file and include your Google developer API token.
+	-->
+	
+	<js:valuesImpl>
+		<js:SimpleCSSValuesImpl />
+	</js:valuesImpl>
+	<js:initialView>
+		<local:MyInitialView />
+	</js:initialView>
+	<js:model>
+		<models:MyModel />
+	</js:model>
+	<js:beads>
+		<js:MixinManager />
+	</js:beads>
+	
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MapSearch/src/main/flex/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MapSearch/src/main/flex/MyInitialView.mxml b/examples/flexjs/MapSearch/src/main/flex/MyInitialView.mxml
new file mode 100644
index 0000000..54ec4a2
--- /dev/null
+++ b/examples/flexjs/MapSearch/src/main/flex/MyInitialView.mxml
@@ -0,0 +1,211 @@
+<?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.
+
+-->
+<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+                xmlns:google="library://ns.apache.org/flexjs/google"
+				xmlns:local="*"
+				initComplete="initControls()">
+	<fx:Script>
+		<![CDATA[		
+			import models.MyModel;			
+			import org.apache.flex.events.Event;
+			
+			import google.maps.places.PlaceResult;
+			import google.maps.Marker;
+			
+			private function initControls() : void
+			{
+				
+			}
+			
+			/**
+			 * Called when the map is ready for use. This function adds a variety of event
+			 * listners, some of which will trigger a new search.
+			 */
+			private function onMapReady() : void
+			{
+				map.addEventListener("centered", onMapCenteredOrChanged);
+				map.addEventListener("boundsChanged", onMapCenteredOrChanged);
+				map.addEventListener("zoomChanged", onMapCenteredOrChanged);
+				map.addEventListener("dragEnd", onMapCenteredOrChanged);
+				map.addEventListener("markerClicked", onMarkerClicked);
+				
+				// Listen for changes to the search results on the map's model.
+				map.model.addEventListener("searchResultsChanged", onSearchResults);
+			}
+			
+			private var selectedCity:String;
+			
+			/**
+			 * Triggered by a change in the drop list with a new city selected. This
+			 * will also update the input fields.
+			 */
+			private function changeCity(event:org.apache.flex.events.Event) : void
+			{
+				var index:int = list.selectedIndex;
+				mapLocation.text = MyModel(applicationModel).cities[index];
+				codeAddress();
+			}
+			
+			private function codeAddress() : void
+			{
+				map.markAddress(mapLocation.text);
+			}
+			
+			private function searchOnMap() : void
+			{
+				map.nearbySearch(search.text);
+			}
+			
+			private function clearSearchResults() : void
+			{
+				map.clearSearchResults();
+			}
+			
+			private function orientMap() : void
+			{
+				map.centerOnAddress(mapLocation.text);
+			}
+			
+			/**
+			 * Called when the map has been re-centered or moved. The search results are
+			 * cleared and a new search is triggered.
+			 */
+			private function onMapCenteredOrChanged(event:org.apache.flex.events.Event):void
+			{
+				clearSearchResults();
+				if (search.text) searchOnMap();
+			}
+			
+			/**
+			 * Called when search results are available in the map's model. This function
+			 * transfers those results to the application's model which is bound to the
+			 * List component.
+			 */
+			private function onSearchResults(event:org.apache.flex.events.Event):void
+			{
+				var searchResults:Array = map.searchResults;
+				MyModel(applicationModel).searchResults = searchResults;
+			}
+			
+			/**
+			 * Called when a marker on the map has been selected. This function centers
+			 * the map on the marker and, if necessary, zooms the map in for closer
+			 * inspection.
+			 */
+			private function onMarkerClicked(event:org.apache.flex.events.Event):void
+			{
+				var marker:Marker = map.selectedMarker as Marker;
+				map.setZoom(12);
+				map.setCenter(marker.getPosition());
+			}
+			
+		]]>
+	</fx:Script>
+	
+		<fx:Style>
+		@namespace basic "library://ns.apache.org/flexjs/basic";
+		
+		.FormLabel {
+			font-weight: bold;
+			font-size: 12;
+			padding-left: 20px;
+			padding-right: 20px;
+			padding-top: 20px;
+			padding-bottom: 20px;
+			height: 22px;
+		}
+		
+		.FormButton {
+			font-weight: bold;
+			font-size: 12;
+			color: #000000;
+			background-color: #FFFFFF;
+			border-style: solid;
+			padding-top: 5px;
+			padding-bottom: 5px;
+			padding-left: 5px;
+			padding-right: 5px;
+		}
+		
+		.FormInput {
+			font-weight: normal;
+			font-size: 12;
+			color: #0000DE;
+			padding: 0px;
+			height: 20px;
+		}
+		
+		.InnerBox {
+			margin-top: 11px;
+			margin-bottom: 10px;
+		}
+	</fx:Style>
+	
+	<js:beads>
+		<js:ViewDataBinding />
+	</js:beads>
+	
+	
+	<js:Container x="5" y="5" className="topContainer" >
+		<js:beads>
+			<js:VerticalLayout />
+		</js:beads>
+		
+		<js:Container className="InnerBox">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="label1" text="Location:" className="FormLabel"  />
+			<js:TextInput id="mapLocation" />
+			<js:TextButton text="Go" id="goButton" click="orientMap()" className="FormButton" />
+			
+			<js:DropDownList id="list" width="100" height="20"
+								change="changeCity(event)"
+								dataProvider="{MyModel(applicationModel).cities}" />
+		</js:Container>
+		
+		<google:Map id="map" width="450" height="300" className="MainMap"
+				   token="AIzaSyDkQgg2iojLCYeuW6hK7DkuAHD-SwJJhdE" 
+				   ready="onMapReady()"/>
+		
+		<js:Container className="InnerBox">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="label2" text="Search on Map:" className="FormLabel" />
+			<js:TextInput id="search" />
+			<js:TextButton text="Find" click="searchOnMap()" className="FormButton" />
+			<js:TextButton text="Clear"click="clearSearchResults()" className="FormButton" />
+		</js:Container>
+		
+		<js:List id="resultsList" width="450" height="200">
+			<js:beads>
+				<js:SimpleBinding
+					sourceID="applicationModel"
+					sourcePropertyName="searchResults"
+					eventName="searchResultsChanged"
+					destinationPropertyName="dataProvider" />
+			</js:beads>
+		</js:List>
+		
+	</js:Container>
+	
+</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MapSearch/src/main/flex/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MapSearch/src/main/flex/models/MyModel.as b/examples/flexjs/MapSearch/src/main/flex/models/MyModel.as
new file mode 100644
index 0000000..8a1e8fd
--- /dev/null
+++ b/examples/flexjs/MapSearch/src/main/flex/models/MyModel.as
@@ -0,0 +1,71 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.Event;
+	import org.apache.flex.events.EventDispatcher;
+	
+	public class MyModel extends EventDispatcher implements IBeadModel
+	{
+		public function MyModel()
+		{
+			super();
+		}
+		
+		private var _strand:IStrand;
+		
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+		
+		private var _cities:Array = ["Sydney", "NYC", "Mexico City", "London", "Rio de Janeiro"];
+		
+		[Bindable]
+		public function get cities():Array
+		{
+			return _cities;
+		}
+		
+		private var _coordinates:Array = [{lat:-33.86, lng:151.211},
+			{lat:40.712, lng:-74.0059},
+			{lat:19.26, lng:-99.03},
+			{lat:51.4, lng:-0.1},
+			{lat:-22.95, lng:-43.12}];
+		public function get coordinates():Array
+		{
+			return _coordinates;
+		}
+		
+		private var _searchResults:Array = [];
+		
+		[Bindable("searchResultsChanged")]
+		public function get searchResults():Array
+		{
+			return _searchResults;
+		}
+		public function set searchResults(value:Array):void
+		{
+			_searchResults = value;
+			dispatchEvent(new Event("searchResultsChanged"));
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MapSearch/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MapSearch/src/models/MyModel.as b/examples/flexjs/MapSearch/src/models/MyModel.as
deleted file mode 100644
index 8a1e8fd..0000000
--- a/examples/flexjs/MapSearch/src/models/MyModel.as
+++ /dev/null
@@ -1,71 +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
-//
-//      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.Event;
-	import org.apache.flex.events.EventDispatcher;
-	
-	public class MyModel extends EventDispatcher implements IBeadModel
-	{
-		public function MyModel()
-		{
-			super();
-		}
-		
-		private var _strand:IStrand;
-		
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-		}
-		
-		private var _cities:Array = ["Sydney", "NYC", "Mexico City", "London", "Rio de Janeiro"];
-		
-		[Bindable]
-		public function get cities():Array
-		{
-			return _cities;
-		}
-		
-		private var _coordinates:Array = [{lat:-33.86, lng:151.211},
-			{lat:40.712, lng:-74.0059},
-			{lat:19.26, lng:-99.03},
-			{lat:51.4, lng:-0.1},
-			{lat:-22.95, lng:-43.12}];
-		public function get coordinates():Array
-		{
-			return _coordinates;
-		}
-		
-		private var _searchResults:Array = [];
-		
-		[Bindable("searchResultsChanged")]
-		public function get searchResults():Array
-		{
-			return _searchResults;
-		}
-		public function set searchResults(value:Array):void
-		{
-			_searchResults = value;
-			dispatchEvent(new Event("searchResultsChanged"));
-		}
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileMap/resources/config.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileMap/resources/config.xml b/examples/flexjs/MobileMap/resources/config.xml
deleted file mode 100644
index 00b9f64..0000000
--- a/examples/flexjs/MobileMap/resources/config.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?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.
-
--->
-<widget id="${groupId}.${artifactId}" version="${version}" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>${artifactId}</name>
-    <description>
-        ${description}
-    </description>
-    <author email="dev@flex.apache.org" href="http://flex.apache.org">
-        Apache Flex Team
-    </author>
-    <content src="index.html" />
-    <plugin name="cordova-plugin-whitelist" version="1" />
-    <access origin="*" />
-    <allow-intent href="http://*/*" />
-    <allow-intent href="https://*/*" />
-    <allow-intent href="tel:*" />
-    <allow-intent href="sms:*" />
-    <allow-intent href="mailto:*" />
-    <allow-intent href="geo:*" />
-    <platform name="android">
-        <allow-intent href="market:*" />
-    </platform>
-    <platform name="ios">
-        <allow-intent href="itms:*" />
-        <allow-intent href="itms-apps:*" />
-    </platform>
-</widget>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileMap/src/MobileMap.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileMap/src/MobileMap.mxml b/examples/flexjs/MobileMap/src/MobileMap.mxml
deleted file mode 100644
index 1a68662..0000000
--- a/examples/flexjs/MobileMap/src/MobileMap.mxml
+++ /dev/null
@@ -1,71 +0,0 @@
-<?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.
-
--->
-<mjs:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-                 xmlns:js="library://ns.apache.org/flexjs/basic"
-                 xmlns:mjs="library://ns.apache.org/flexjs/cordova"
-                 xmlns:google="library://ns.apache.org/flexjs/google"
-                 applicationComplete="onDeviceReady()">
-    <js:valuesImpl>
-        <js:SimpleCSSValuesImpl />
-    </js:valuesImpl>
-    <fx:Script>
-        <![CDATA[
-        	import org.apache.cordova.geolocation.Geolocation;
-        	import google.maps.LatLng;
-        	
-            private function onDeviceReady():void {
-                label.text = "The device ready, loading map...";
-                
-                var location:Geolocation = new Geolocation();
-                location.getCurrentPosition(onSuccess, onError);
-            }
-            
-            private function onSuccess(position:Object):void
-            {
-            	// Extract the latitude and longitude from the position
-            	// given and covert it to GoogleMaps LatLng object so
-            	// the map can be centered on it.
-            	
-            	var lat:Number = Number(position["coords"]["latitude"]);
-            	var lng:Number = Number(position["coords"]["longitude"]);
-            	
-            	label.text = String(lat) + ", " + String(lng);
-            	map.setCenter(new LatLng(lat, lng));
-            }
-            
-            private function onError(error:*):void
-            {
-            	label.text = "Location failure";
-            }
-        ]]>
-    </fx:Script>
-    <js:initialView>
-        <js:View>
-        	<js:VContainer width="450" height="640">
-        		<js:HContainer width="100%" height="40">
-        			<js:Label text="Current Location: " width="25%" />
-            		<js:Label id="label" text="" width="75%" />
-            	</js:HContainer>
-            	<google:Map id="map" width="100%" height="600" 
-                        token="AIzaSyDkQgg2iojLCYeuW6hK7DkuAHD-SwJJhdE" />
-            </js:VContainer>
-        </js:View>
-    </js:initialView>
-</mjs:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileMap/src/main/flex/MobileMap.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileMap/src/main/flex/MobileMap.mxml b/examples/flexjs/MobileMap/src/main/flex/MobileMap.mxml
new file mode 100644
index 0000000..1a68662
--- /dev/null
+++ b/examples/flexjs/MobileMap/src/main/flex/MobileMap.mxml
@@ -0,0 +1,71 @@
+<?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.
+
+-->
+<mjs:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+                 xmlns:js="library://ns.apache.org/flexjs/basic"
+                 xmlns:mjs="library://ns.apache.org/flexjs/cordova"
+                 xmlns:google="library://ns.apache.org/flexjs/google"
+                 applicationComplete="onDeviceReady()">
+    <js:valuesImpl>
+        <js:SimpleCSSValuesImpl />
+    </js:valuesImpl>
+    <fx:Script>
+        <![CDATA[
+        	import org.apache.cordova.geolocation.Geolocation;
+        	import google.maps.LatLng;
+        	
+            private function onDeviceReady():void {
+                label.text = "The device ready, loading map...";
+                
+                var location:Geolocation = new Geolocation();
+                location.getCurrentPosition(onSuccess, onError);
+            }
+            
+            private function onSuccess(position:Object):void
+            {
+            	// Extract the latitude and longitude from the position
+            	// given and covert it to GoogleMaps LatLng object so
+            	// the map can be centered on it.
+            	
+            	var lat:Number = Number(position["coords"]["latitude"]);
+            	var lng:Number = Number(position["coords"]["longitude"]);
+            	
+            	label.text = String(lat) + ", " + String(lng);
+            	map.setCenter(new LatLng(lat, lng));
+            }
+            
+            private function onError(error:*):void
+            {
+            	label.text = "Location failure";
+            }
+        ]]>
+    </fx:Script>
+    <js:initialView>
+        <js:View>
+        	<js:VContainer width="450" height="640">
+        		<js:HContainer width="100%" height="40">
+        			<js:Label text="Current Location: " width="25%" />
+            		<js:Label id="label" text="" width="75%" />
+            	</js:HContainer>
+            	<google:Map id="map" width="100%" height="600" 
+                        token="AIzaSyDkQgg2iojLCYeuW6hK7DkuAHD-SwJJhdE" />
+            </js:VContainer>
+        </js:View>
+    </js:initialView>
+</mjs:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileMap/src/main/resources/config.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileMap/src/main/resources/config.xml b/examples/flexjs/MobileMap/src/main/resources/config.xml
new file mode 100644
index 0000000..00b9f64
--- /dev/null
+++ b/examples/flexjs/MobileMap/src/main/resources/config.xml
@@ -0,0 +1,44 @@
+<?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.
+
+-->
+<widget id="${groupId}.${artifactId}" version="${version}" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
+    <name>${artifactId}</name>
+    <description>
+        ${description}
+    </description>
+    <author email="dev@flex.apache.org" href="http://flex.apache.org">
+        Apache Flex Team
+    </author>
+    <content src="index.html" />
+    <plugin name="cordova-plugin-whitelist" version="1" />
+    <access origin="*" />
+    <allow-intent href="http://*/*" />
+    <allow-intent href="https://*/*" />
+    <allow-intent href="tel:*" />
+    <allow-intent href="sms:*" />
+    <allow-intent href="mailto:*" />
+    <allow-intent href="geo:*" />
+    <platform name="android">
+        <allow-intent href="market:*" />
+    </platform>
+    <platform name="ios">
+        <allow-intent href="itms:*" />
+        <allow-intent href="itms-apps:*" />
+    </platform>
+</widget>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/resources/config.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/resources/config.xml b/examples/flexjs/MobileStocks/resources/config.xml
deleted file mode 100644
index 00b9f64..0000000
--- a/examples/flexjs/MobileStocks/resources/config.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?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.
-
--->
-<widget id="${groupId}.${artifactId}" version="${version}" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
-    <name>${artifactId}</name>
-    <description>
-        ${description}
-    </description>
-    <author email="dev@flex.apache.org" href="http://flex.apache.org">
-        Apache Flex Team
-    </author>
-    <content src="index.html" />
-    <plugin name="cordova-plugin-whitelist" version="1" />
-    <access origin="*" />
-    <allow-intent href="http://*/*" />
-    <allow-intent href="https://*/*" />
-    <allow-intent href="tel:*" />
-    <allow-intent href="sms:*" />
-    <allow-intent href="mailto:*" />
-    <allow-intent href="geo:*" />
-    <platform name="android">
-        <allow-intent href="market:*" />
-    </platform>
-    <platform name="ios">
-        <allow-intent href="itms:*" />
-        <allow-intent href="itms-apps:*" />
-    </platform>
-</widget>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/MobileStocks.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/MobileStocks.mxml b/examples/flexjs/MobileStocks/src/MobileStocks.mxml
deleted file mode 100644
index 1d30b37..0000000
--- a/examples/flexjs/MobileStocks/src/MobileStocks.mxml
+++ /dev/null
@@ -1,50 +0,0 @@
-<?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.
-
--->
-<cordova:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-					  xmlns:local="*"
-					  xmlns:models="models.*"
-					  xmlns:views="views.*"
-					  xmlns:js="library://ns.apache.org/flexjs/basic" 
-				      xmlns:cordova="library://ns.apache.org/flexjs/cordova"
-					  >
-	<fx:Declarations>
-		<!-- Place non-visual elements (e.g., services, value objects) here -->
-	</fx:Declarations>
-	
-	<js:valuesImpl>
-		<js:SimpleCSSValuesImpl />
-	</js:valuesImpl>
-	
-	<js:model>
-		<models:ProductsModel />
-	</js:model>
-	
-	<js:initialView>
-		<local:MyInitialView width="100%" height="100%" className="InitalView" />
-	</js:initialView>
-	
-	<js:beads>
-		<cordova:Weinre guid="aharui" />
-		<js:MixinManager />
-		<js:DeviceSizeBead />
-	</js:beads>
-	
-	
-</cordova:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/MyInitialView.mxml b/examples/flexjs/MobileStocks/src/MyInitialView.mxml
deleted file mode 100755
index b6853e2..0000000
--- a/examples/flexjs/MobileStocks/src/MyInitialView.mxml
+++ /dev/null
@@ -1,253 +0,0 @@
-<?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.
-
--->
-<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
-				xmlns:local="*"
-				xmlns:js="library://ns.apache.org/flexjs/basic"
-				xmlns:views="views.*" 
-				xmlns:apache="org.apache.flex.html.beads.*"
-				xmlns:html="org.apache.flex.html.*"
-				xmlns:controller="controller.*"
-				initComplete="onInitComplete()" xmlns:models="models.*" >
-	
-	<fx:Style>
-		@namespace js  "library://ns.apache.org/flexjs/basic";
-		@namespace views  "views.*";
-		
-		js|Container {
-			background-color: #FFFFFF;
-		}
-		
-		js|TextInput {
-			font-size: 10pt;
-		}
-		
-		js|Label {
-		    font-size: 8pt;
-		}
-		
-		js|StackedViewManager {
-			padding-top: 0px;
-			padding-bottom: 0px;
-			padding-left: 0px;
-			padding-right: 0px;
-		}
-		
-		js|TabbedViewManager {
-			position : absolute ;
-			height : 100% ;
-			width : 100% ;
-			left : 0px ;
-			top : 0px ;
-			border: solid 1px #444444;
-			background-color: #FFFFFF;
-		}
-		
-		.NavigationBar {
-			background-image: url("assets/background.png");
-			height: 56px;
-			width: 100%;
-			IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
-		}
-		
-		.TabBar {
-			background-color: #DEDEDE;
-			height: 55px;
-			vertical-align: middle;
-			line-height: 55px;
-		}
-		
-		.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');
-		}
-		
-		views|LaunchView {
-			width: 100%;
-			height: 100%;
-			IBeadController:ClassReference('controller.LaunchViewController');
-			background-color: #FFFFFF;
-		}
-		
-		views|WatchListView {
-			width: 100%;
-			height: 100%;
-			IBeadController:ClassReference('controller.WatchListController');
-			background-color: #FFFFFF;
-		}
-		
-		.WatchListInner {
-			height: 480px;
-			width:  100%;
-			background-color: #FFFFFF;
-		}
-		
-		.WatchListDataGrid {
-			height: 480px;
-			width:  100%;
-		}
-		
-		.WatchListInputArea {
-			background-color: #FFFFFF;
-			width: 480px;
-			height: 25px;
-			padding-top: 5px;
-			padding-bottom: 2px;
-		}
-		
-		views|StockView {
-			width: 100%;
-			height: 100%;
-		}
-		
-		.redCell {
-			color: #FF0000;
-		}
-		
-		.greenCell {
-			color: #00FF00;
-		}
-		
-		.ViewTitle {
-			font-size: 18pt;
-			font-weight: bold;
-			padding: 10pt;
-		}
-		
-		.StockName {
-			font-size: 14pt;
-			font-weight: normal;
-			padding: 10pt;
-		}
-		
-		.StockDetailArea {
-			padding: 10pt;
-		}
-		
-		.StockLabel {
-			font-size: 18pt;
-			font-weight: normal;
-			color: #2255DD;
-		}
-		
-		.StockRemoveButton {
-			background-color: #FF5522;
-			font-size: 16pt;
-			font-weight: bold;
-			color: #FFFFFF;
-			width: 200px;
-			height: 50px;
-		}
-		
-		.StockRemoveButton:hover {
-			background-color: #DD3300;
-		}
-		
-		.StockValue {
-			font-size: 18pt;
-			font-weight: normal;
-			color: #999999;
-		}
-		
-		@media -flex-flash
-		{
-			.NavigationBar {
-				IBackgroundBead: ClassReference("org.apache.flex.html.beads.BackgroundImageBead");
-			}
-		}
-		
-	</fx:Style>
-	
-	<fx:Script>
-		<![CDATA[
-			import org.apache.flex.core.IBeadController;
-			import org.apache.flex.core.IBeadModel;
-			import org.apache.flex.events.Event;
-			import org.apache.flex.mobile.IViewManagerView;
-			import org.apache.flex.mobile.IViewManager;
-			import org.apache.flex.mobile.chrome.NavigationBar;
-			
-			import models.ProductsModel;
-			
-			private function onInitComplete():void
-			{
-				(applicationModel as ProductsModel).loadDataFromStorage();
-			}
-			
-			/* debugging */
-			private function tabbedViewChanged(event:org.apache.flex.events.Event):void
-			{
-				//var manager:IViewManager = event.currentTarget as IViewManager;
-				//trace("TabbedViewChanged for "+manager);
-			}
-			
-			private function watchListStackChanged(event:org.apache.flex.events.Event):void
-			{
-				//trace("watchlist stack changed");
-				var manager:StackedViewManager = event.currentTarget as StackedViewManager;
-				
-				var currentView:IViewManagerView = manager.selectedView;
-				backButton.visible = manager.views.length > 1;
-			}
-			
-			private function goBack(event:org.apache.flex.events.MouseEvent):void
-			{
-				if (navController.selectedIndex == 1) {
-					watchListStack.pop();
-				}
-			}
-		]]>
-	</fx:Script>
-	
-	<js:beads>
-		<js:ViewDataBinding />
-	</js:beads>
-	
-	<js:TabbedViewManager id="navController" width="100%" height="100%" x="0" y="0" viewChanged="tabbedViewChanged(event)">
-		<js:navigationBarItems>
-			<js:TextButton id="backButton" width="45" height="45" className="BackButton" visible="false" click="goBack(event)">
-				<js:beads>
-					<apache:ImageButtonView />
-				</js:beads>
-			</js:TextButton>
-			<js:Image source="assets/logo.png" width="218" height="55" />
-		</js:navigationBarItems>
-		<js:views>
-			<js:StackedViewManager title="Assets">
-				<js:views>
-					<views:LaunchView id="assetsView" title="Assets" dataModel="{applicationModel}" />
-				</js:views>
-			</js:StackedViewManager>
-			
-			<js:StackedViewManager id="watchListStack" title="Watch List" viewChanged="watchListStackChanged(event)">
-				<js:views>
-					<views:WatchListView id="watchListView" dataModel="{applicationModel}"/>
-				</js:views>
-			</js:StackedViewManager>
-		</js:views>
-	</js:TabbedViewManager>
-	
-</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/StockDataJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/StockDataJSONItemConverter.as b/examples/flexjs/MobileStocks/src/StockDataJSONItemConverter.as
deleted file mode 100755
index 92a75dc..0000000
--- a/examples/flexjs/MobileStocks/src/StockDataJSONItemConverter.as
+++ /dev/null
@@ -1,41 +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
-//
-//      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
-{
-    import org.apache.flex.collections.converters.JSONItemConverter;
-
-    public class StockDataJSONItemConverter extends JSONItemConverter
-    {
-        public function StockDataJSONItemConverter()
-        {
-            super();
-        }
-
-        override public function convertItem(data:String):Object
-        {
-            var obj:Object = super.convertItem(data);
-            if (obj["query"] == null) return "No Data";
-			if (obj["query"]["count"] == 0)
-				return "No Data";
-
-			obj = obj["query"]["results"]["quote"];
-			return obj;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/VerticalLayoutTextView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/VerticalLayoutTextView.mxml b/examples/flexjs/MobileStocks/src/VerticalLayoutTextView.mxml
deleted file mode 100755
index 0353195..0000000
--- a/examples/flexjs/MobileStocks/src/VerticalLayoutTextView.mxml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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.
-
--->
-<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
-				xmlns:js="library://ns.apache.org/flexjs/basic"
-			 >
-	
-	<fx:Style>
-		@namespace js  "library://ns.apache.org/flexjs/basic";
-		@namespace views  "views.*";
-		
-		.TopContainer {
-			background-color: #FFFFCC;
-		}
-		
-		.MidContainer {
-			background-color: #FFCCFF;
-		}
-		
-		.BotContainer {
-			background-color: #CCFFFF;
-		}
-		
-	</fx:Style>
-	
-	<fx:Script>
-		<![CDATA[
-			
-		]]>
-	</fx:Script>
-	
-	<js:beads>
-		<js:ViewDataBinding />
-	</js:beads>
-	
-	<js:VContainer width="100%" height="100%">
-	
-		<js:Container width="100%" height="25%" className="TopContainer">
-			<js:Label text="Top Container: 25%" />
-		</js:Container>
-	
-		<js:Container width="100%" height="50%" className="MidContainer">
-			<js:Label text="Middle Container: 50%" />
-		</js:Container>
-	
-		<js:Container width="100%" height="25%" className="BotContainer">
-			<js:Label text="Bottom Container: 25%" />
-		</js:Container>
-		
-	</js:VContainer>
-	
-</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/assets/arrow_left_24.png
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/assets/arrow_left_24.png b/examples/flexjs/MobileStocks/src/assets/arrow_left_24.png
deleted file mode 100755
index a3019ba..0000000
Binary files a/examples/flexjs/MobileStocks/src/assets/arrow_left_24.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/assets/background.png
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/assets/background.png b/examples/flexjs/MobileStocks/src/assets/background.png
deleted file mode 100755
index 87bbd59..0000000
Binary files a/examples/flexjs/MobileStocks/src/assets/background.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/assets/logo.png
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/assets/logo.png b/examples/flexjs/MobileStocks/src/assets/logo.png
deleted file mode 100755
index 0fb0f21..0000000
Binary files a/examples/flexjs/MobileStocks/src/assets/logo.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/controller/LaunchViewController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/controller/LaunchViewController.as b/examples/flexjs/MobileStocks/src/controller/LaunchViewController.as
deleted file mode 100644
index 2b88d26..0000000
--- a/examples/flexjs/MobileStocks/src/controller/LaunchViewController.as
+++ /dev/null
@@ -1,150 +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
-//
-//      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 controller
-{
-	import models.ProductsModel;
-	import models.Stock;
-
-	import org.apache.flex.core.IBeadController;
-	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;
-	import org.apache.flex.collections.ArrayList;
-
-	import views.LaunchView;
-
-	public class LaunchViewController extends EventDispatcher implements IBeadController
-	{
-		public function LaunchViewController()
-		{
-			super();
-
-			timer = new Timer(updateInterval, 0);
-			timer.addEventListener("timer", timerHandler);
-		}
-
-		public var updateInterval:Number = 5000;
-
-		protected var timer:Timer;
-
-		private var index:Number = 0;
-		private var selectedStock:Stock;
-		private var _strand:IStrand;
-
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-
-			var view:LaunchView = value as LaunchView;
-			view.addEventListener("addSymbol", handleAddSymbol);
-			view.addEventListener("removeSymbol", handleRemoveSymbol);
-			view.addEventListener("symbolSelected", handleGridSelection);
-		}
-
-		private var _model:IBeadModel;
-		public function set model(value:IBeadModel):void
-		{
-			_model = value;
-		}
-		public function get model():IBeadModel
-		{
-			return _model;
-		}
-
-		private function handleAddSymbol(event:Event):void
-		{
-			var view:LaunchView = _strand as LaunchView;
-			var symbol:String = view.symbolInput.text.toUpperCase();
-			var shares:Number = Number(view.sharesInput.text);
-			if (isNaN(shares) || shares < 0) shares = 0;
-
-			(model as ProductsModel).addStockToAssetList(symbol, shares);
-			(model as ProductsModel).saveDataToStorage();
-
-			subscribe();
-
-			view.symbolInput.text = "";
-			view.sharesInput.text = "";
-			view.addButton.text = "Add";
-		}
-
-		private function handleGridSelection(event:Event):void
-		{
-			var view:LaunchView = _strand as LaunchView;
-			var index:int = view.assetGrid.selectedIndex;
-			var data:Object = (model as ProductsModel).assetList.getItemAt(index);
-			view.symbolInput.text = data.symbol;
-			view.sharesInput.text = String(data.shares);
-
-			view.addButton.text = "Change";
-		}
-
-		public function handleRemoveSymbol(event:Event):void
-		{
-			var view:LaunchView = _strand as LaunchView;
-			var index:int = view.assetGrid.selectedIndex;
-			if (index < 0) return;
-
-			(model as ProductsModel).removeStockFromAssetListAtIndex(index);
-
-			view.symbolInput.text = "";
-			view.sharesInput.text = "";
-
-			view.addButton.text = "Add";
-		}
-
-		public function subscribe():void
-		{
-			if (!timer.running)
-			{
-				timer.start();
-			}
-		}
-
-		public function unsubscribe():void
-		{
-			if (timer.running)
-			{
-				timer.stop();
-			}
-		}
-
-		/**
-		 * Each time the handler goes off a different stock in the list
-		 * is updated. This keeps the app from sending too many requests
-		 * all at once.
-		 */
-		protected function timerHandler(event:*):void
-		{
-			var stockList:ArrayList = (model as ProductsModel).assetList;
-
-			if (stockList.length == 0) return;
-
-			if (index >= stockList.length) index = 0;
-
-			(model as ProductsModel).updateStockData(stockList.getItemAt(index) as Stock);
-			index++;
-
-			var newEvent:Event = new Event("update");
-			model.dispatchEvent(newEvent);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/controller/WatchListController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/controller/WatchListController.as b/examples/flexjs/MobileStocks/src/controller/WatchListController.as
deleted file mode 100644
index 0d94e5f..0000000
--- a/examples/flexjs/MobileStocks/src/controller/WatchListController.as
+++ /dev/null
@@ -1,139 +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
-//
-//      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 controller
-{
-	import models.ProductsModel;
-	import models.Stock;
-
-	import org.apache.flex.core.IBeadController;
-	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;
-	import org.apache.flex.collections.ArrayList;
-
-	import views.StockView;
-	import views.WatchListView;
-
-	public class WatchListController extends EventDispatcher implements IBeadController
-	{
-		public function WatchListController()
-		{
-			super();
-
-			timer = new Timer(updateInterval, 0);
-			timer.addEventListener("timer", timerHandler);
-		}
-
-		public var updateInterval:Number = 5000;
-
-		protected var timer:Timer;
-
-		private var index:Number = 0;
-		private var selectedStock:Stock;
-		private var _strand:IStrand;
-
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-
-			var view:WatchListView = value as WatchListView;
-			view.addEventListener("addSymbol", handleAddSymbol);
-			view.addEventListener("stockSelected", handleGridSelection);
-		}
-
-		private var _model:IBeadModel;
-		public function set model(value:IBeadModel):void
-		{
-			_model = value;
-		}
-		public function get model():IBeadModel
-		{
-			return _model;
-		}
-
-		private function handleAddSymbol(event:Event):void
-		{
-			var view:WatchListView = _strand as WatchListView;
-			var symbol:String = view.symbolName.text.toUpperCase();
-
-			view.symbolName.text = "";
-
-			(model as ProductsModel).addStockToWatchList(symbol);
-			(model as ProductsModel).saveDataToStorage();
-
-			subscribe();
-		}
-
-		private function handleGridSelection(event:Event):void
-		{
-			var view:WatchListView = _strand as WatchListView;
-			selectedStock = (model as ProductsModel).watchList.getItemAt(view.selectedStockIndex) as Stock;
-			trace("Selected stock "+selectedStock.symbol);
-
-			var stockView:StockView = view.showStockDetails(selectedStock);
-			stockView.addEventListener("removeFromList", handleRemoveFromList);
-		}
-
-		public function handleRemoveFromList(event:Event):void
-		{
-			(model as ProductsModel).removeStockFromWatchList(selectedStock);
-
-			var view:WatchListView = _strand as WatchListView;
-			view.popView();
-		}
-
-		public function subscribe():void
-		{
-			if (!timer.running)
-			{
-				timer.start();
-			}
-		}
-
-		public function unsubscribe():void
-		{
-			if (timer.running)
-			{
-				timer.stop();
-			}
-		}
-
-		/**
-		 * Each time the handler goes off a different stock in the list
-		 * is updated. This keeps the app from sending too many requests
-		 * all at once.
-		 */
-		protected function timerHandler(event:*):void
-		{
-			var stockList:ArrayList = (model as ProductsModel).watchList;
-
-			if (stockList.length == 0) return;
-
-			if (index >= stockList.length) index = 0;
-
-			(model as ProductsModel).updateStockData(stockList.getItemAt(index) as Stock);
-			index++;
-
-			var newEvent:Event = new Event("update");
-			model.dispatchEvent(newEvent);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/MobileStocks.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/MobileStocks.mxml b/examples/flexjs/MobileStocks/src/main/flex/MobileStocks.mxml
new file mode 100644
index 0000000..1d30b37
--- /dev/null
+++ b/examples/flexjs/MobileStocks/src/main/flex/MobileStocks.mxml
@@ -0,0 +1,50 @@
+<?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.
+
+-->
+<cordova:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+					  xmlns:local="*"
+					  xmlns:models="models.*"
+					  xmlns:views="views.*"
+					  xmlns:js="library://ns.apache.org/flexjs/basic" 
+				      xmlns:cordova="library://ns.apache.org/flexjs/cordova"
+					  >
+	<fx:Declarations>
+		<!-- Place non-visual elements (e.g., services, value objects) here -->
+	</fx:Declarations>
+	
+	<js:valuesImpl>
+		<js:SimpleCSSValuesImpl />
+	</js:valuesImpl>
+	
+	<js:model>
+		<models:ProductsModel />
+	</js:model>
+	
+	<js:initialView>
+		<local:MyInitialView width="100%" height="100%" className="InitalView" />
+	</js:initialView>
+	
+	<js:beads>
+		<cordova:Weinre guid="aharui" />
+		<js:MixinManager />
+		<js:DeviceSizeBead />
+	</js:beads>
+	
+	
+</cordova:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/MyInitialView.mxml b/examples/flexjs/MobileStocks/src/main/flex/MyInitialView.mxml
new file mode 100755
index 0000000..b6853e2
--- /dev/null
+++ b/examples/flexjs/MobileStocks/src/main/flex/MyInitialView.mxml
@@ -0,0 +1,253 @@
+<?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.
+
+-->
+<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:local="*"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+				xmlns:views="views.*" 
+				xmlns:apache="org.apache.flex.html.beads.*"
+				xmlns:html="org.apache.flex.html.*"
+				xmlns:controller="controller.*"
+				initComplete="onInitComplete()" xmlns:models="models.*" >
+	
+	<fx:Style>
+		@namespace js  "library://ns.apache.org/flexjs/basic";
+		@namespace views  "views.*";
+		
+		js|Container {
+			background-color: #FFFFFF;
+		}
+		
+		js|TextInput {
+			font-size: 10pt;
+		}
+		
+		js|Label {
+		    font-size: 8pt;
+		}
+		
+		js|StackedViewManager {
+			padding-top: 0px;
+			padding-bottom: 0px;
+			padding-left: 0px;
+			padding-right: 0px;
+		}
+		
+		js|TabbedViewManager {
+			position : absolute ;
+			height : 100% ;
+			width : 100% ;
+			left : 0px ;
+			top : 0px ;
+			border: solid 1px #444444;
+			background-color: #FFFFFF;
+		}
+		
+		.NavigationBar {
+			background-image: url("assets/background.png");
+			height: 56px;
+			width: 100%;
+			IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
+		}
+		
+		.TabBar {
+			background-color: #DEDEDE;
+			height: 55px;
+			vertical-align: middle;
+			line-height: 55px;
+		}
+		
+		.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');
+		}
+		
+		views|LaunchView {
+			width: 100%;
+			height: 100%;
+			IBeadController:ClassReference('controller.LaunchViewController');
+			background-color: #FFFFFF;
+		}
+		
+		views|WatchListView {
+			width: 100%;
+			height: 100%;
+			IBeadController:ClassReference('controller.WatchListController');
+			background-color: #FFFFFF;
+		}
+		
+		.WatchListInner {
+			height: 480px;
+			width:  100%;
+			background-color: #FFFFFF;
+		}
+		
+		.WatchListDataGrid {
+			height: 480px;
+			width:  100%;
+		}
+		
+		.WatchListInputArea {
+			background-color: #FFFFFF;
+			width: 480px;
+			height: 25px;
+			padding-top: 5px;
+			padding-bottom: 2px;
+		}
+		
+		views|StockView {
+			width: 100%;
+			height: 100%;
+		}
+		
+		.redCell {
+			color: #FF0000;
+		}
+		
+		.greenCell {
+			color: #00FF00;
+		}
+		
+		.ViewTitle {
+			font-size: 18pt;
+			font-weight: bold;
+			padding: 10pt;
+		}
+		
+		.StockName {
+			font-size: 14pt;
+			font-weight: normal;
+			padding: 10pt;
+		}
+		
+		.StockDetailArea {
+			padding: 10pt;
+		}
+		
+		.StockLabel {
+			font-size: 18pt;
+			font-weight: normal;
+			color: #2255DD;
+		}
+		
+		.StockRemoveButton {
+			background-color: #FF5522;
+			font-size: 16pt;
+			font-weight: bold;
+			color: #FFFFFF;
+			width: 200px;
+			height: 50px;
+		}
+		
+		.StockRemoveButton:hover {
+			background-color: #DD3300;
+		}
+		
+		.StockValue {
+			font-size: 18pt;
+			font-weight: normal;
+			color: #999999;
+		}
+		
+		@media -flex-flash
+		{
+			.NavigationBar {
+				IBackgroundBead: ClassReference("org.apache.flex.html.beads.BackgroundImageBead");
+			}
+		}
+		
+	</fx:Style>
+	
+	<fx:Script>
+		<![CDATA[
+			import org.apache.flex.core.IBeadController;
+			import org.apache.flex.core.IBeadModel;
+			import org.apache.flex.events.Event;
+			import org.apache.flex.mobile.IViewManagerView;
+			import org.apache.flex.mobile.IViewManager;
+			import org.apache.flex.mobile.chrome.NavigationBar;
+			
+			import models.ProductsModel;
+			
+			private function onInitComplete():void
+			{
+				(applicationModel as ProductsModel).loadDataFromStorage();
+			}
+			
+			/* debugging */
+			private function tabbedViewChanged(event:org.apache.flex.events.Event):void
+			{
+				//var manager:IViewManager = event.currentTarget as IViewManager;
+				//trace("TabbedViewChanged for "+manager);
+			}
+			
+			private function watchListStackChanged(event:org.apache.flex.events.Event):void
+			{
+				//trace("watchlist stack changed");
+				var manager:StackedViewManager = event.currentTarget as StackedViewManager;
+				
+				var currentView:IViewManagerView = manager.selectedView;
+				backButton.visible = manager.views.length > 1;
+			}
+			
+			private function goBack(event:org.apache.flex.events.MouseEvent):void
+			{
+				if (navController.selectedIndex == 1) {
+					watchListStack.pop();
+				}
+			}
+		]]>
+	</fx:Script>
+	
+	<js:beads>
+		<js:ViewDataBinding />
+	</js:beads>
+	
+	<js:TabbedViewManager id="navController" width="100%" height="100%" x="0" y="0" viewChanged="tabbedViewChanged(event)">
+		<js:navigationBarItems>
+			<js:TextButton id="backButton" width="45" height="45" className="BackButton" visible="false" click="goBack(event)">
+				<js:beads>
+					<apache:ImageButtonView />
+				</js:beads>
+			</js:TextButton>
+			<js:Image source="assets/logo.png" width="218" height="55" />
+		</js:navigationBarItems>
+		<js:views>
+			<js:StackedViewManager title="Assets">
+				<js:views>
+					<views:LaunchView id="assetsView" title="Assets" dataModel="{applicationModel}" />
+				</js:views>
+			</js:StackedViewManager>
+			
+			<js:StackedViewManager id="watchListStack" title="Watch List" viewChanged="watchListStackChanged(event)">
+				<js:views>
+					<views:WatchListView id="watchListView" dataModel="{applicationModel}"/>
+				</js:views>
+			</js:StackedViewManager>
+		</js:views>
+	</js:TabbedViewManager>
+	
+</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/StockDataJSONItemConverter.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/StockDataJSONItemConverter.as b/examples/flexjs/MobileStocks/src/main/flex/StockDataJSONItemConverter.as
new file mode 100755
index 0000000..92a75dc
--- /dev/null
+++ b/examples/flexjs/MobileStocks/src/main/flex/StockDataJSONItemConverter.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+    import org.apache.flex.collections.converters.JSONItemConverter;
+
+    public class StockDataJSONItemConverter extends JSONItemConverter
+    {
+        public function StockDataJSONItemConverter()
+        {
+            super();
+        }
+
+        override public function convertItem(data:String):Object
+        {
+            var obj:Object = super.convertItem(data);
+            if (obj["query"] == null) return "No Data";
+			if (obj["query"]["count"] == 0)
+				return "No Data";
+
+			obj = obj["query"]["results"]["quote"];
+			return obj;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/VerticalLayoutTextView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/VerticalLayoutTextView.mxml b/examples/flexjs/MobileStocks/src/main/flex/VerticalLayoutTextView.mxml
new file mode 100755
index 0000000..0353195
--- /dev/null
+++ b/examples/flexjs/MobileStocks/src/main/flex/VerticalLayoutTextView.mxml
@@ -0,0 +1,68 @@
+<?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.
+
+-->
+<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+			 >
+	
+	<fx:Style>
+		@namespace js  "library://ns.apache.org/flexjs/basic";
+		@namespace views  "views.*";
+		
+		.TopContainer {
+			background-color: #FFFFCC;
+		}
+		
+		.MidContainer {
+			background-color: #FFCCFF;
+		}
+		
+		.BotContainer {
+			background-color: #CCFFFF;
+		}
+		
+	</fx:Style>
+	
+	<fx:Script>
+		<![CDATA[
+			
+		]]>
+	</fx:Script>
+	
+	<js:beads>
+		<js:ViewDataBinding />
+	</js:beads>
+	
+	<js:VContainer width="100%" height="100%">
+	
+		<js:Container width="100%" height="25%" className="TopContainer">
+			<js:Label text="Top Container: 25%" />
+		</js:Container>
+	
+		<js:Container width="100%" height="50%" className="MidContainer">
+			<js:Label text="Middle Container: 50%" />
+		</js:Container>
+	
+		<js:Container width="100%" height="25%" className="BotContainer">
+			<js:Label text="Bottom Container: 25%" />
+		</js:Container>
+		
+	</js:VContainer>
+	
+</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/assets/arrow_left_24.png
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/assets/arrow_left_24.png b/examples/flexjs/MobileStocks/src/main/flex/assets/arrow_left_24.png
new file mode 100755
index 0000000..a3019ba
Binary files /dev/null and b/examples/flexjs/MobileStocks/src/main/flex/assets/arrow_left_24.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/assets/background.png
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/assets/background.png b/examples/flexjs/MobileStocks/src/main/flex/assets/background.png
new file mode 100755
index 0000000..87bbd59
Binary files /dev/null and b/examples/flexjs/MobileStocks/src/main/flex/assets/background.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/assets/logo.png
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/assets/logo.png b/examples/flexjs/MobileStocks/src/main/flex/assets/logo.png
new file mode 100755
index 0000000..0fb0f21
Binary files /dev/null and b/examples/flexjs/MobileStocks/src/main/flex/assets/logo.png differ

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e75059f7/examples/flexjs/MobileStocks/src/main/flex/controller/LaunchViewController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileStocks/src/main/flex/controller/LaunchViewController.as b/examples/flexjs/MobileStocks/src/main/flex/controller/LaunchViewController.as
new file mode 100644
index 0000000..2b88d26
--- /dev/null
+++ b/examples/flexjs/MobileStocks/src/main/flex/controller/LaunchViewController.as
@@ -0,0 +1,150 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 controller
+{
+	import models.ProductsModel;
+	import models.Stock;
+
+	import org.apache.flex.core.IBeadController;
+	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;
+	import org.apache.flex.collections.ArrayList;
+
+	import views.LaunchView;
+
+	public class LaunchViewController extends EventDispatcher implements IBeadController
+	{
+		public function LaunchViewController()
+		{
+			super();
+
+			timer = new Timer(updateInterval, 0);
+			timer.addEventListener("timer", timerHandler);
+		}
+
+		public var updateInterval:Number = 5000;
+
+		protected var timer:Timer;
+
+		private var index:Number = 0;
+		private var selectedStock:Stock;
+		private var _strand:IStrand;
+
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+
+			var view:LaunchView = value as LaunchView;
+			view.addEventListener("addSymbol", handleAddSymbol);
+			view.addEventListener("removeSymbol", handleRemoveSymbol);
+			view.addEventListener("symbolSelected", handleGridSelection);
+		}
+
+		private var _model:IBeadModel;
+		public function set model(value:IBeadModel):void
+		{
+			_model = value;
+		}
+		public function get model():IBeadModel
+		{
+			return _model;
+		}
+
+		private function handleAddSymbol(event:Event):void
+		{
+			var view:LaunchView = _strand as LaunchView;
+			var symbol:String = view.symbolInput.text.toUpperCase();
+			var shares:Number = Number(view.sharesInput.text);
+			if (isNaN(shares) || shares < 0) shares = 0;
+
+			(model as ProductsModel).addStockToAssetList(symbol, shares);
+			(model as ProductsModel).saveDataToStorage();
+
+			subscribe();
+
+			view.symbolInput.text = "";
+			view.sharesInput.text = "";
+			view.addButton.text = "Add";
+		}
+
+		private function handleGridSelection(event:Event):void
+		{
+			var view:LaunchView = _strand as LaunchView;
+			var index:int = view.assetGrid.selectedIndex;
+			var data:Object = (model as ProductsModel).assetList.getItemAt(index);
+			view.symbolInput.text = data.symbol;
+			view.sharesInput.text = String(data.shares);
+
+			view.addButton.text = "Change";
+		}
+
+		public function handleRemoveSymbol(event:Event):void
+		{
+			var view:LaunchView = _strand as LaunchView;
+			var index:int = view.assetGrid.selectedIndex;
+			if (index < 0) return;
+
+			(model as ProductsModel).removeStockFromAssetListAtIndex(index);
+
+			view.symbolInput.text = "";
+			view.sharesInput.text = "";
+
+			view.addButton.text = "Add";
+		}
+
+		public function subscribe():void
+		{
+			if (!timer.running)
+			{
+				timer.start();
+			}
+		}
+
+		public function unsubscribe():void
+		{
+			if (timer.running)
+			{
+				timer.stop();
+			}
+		}
+
+		/**
+		 * Each time the handler goes off a different stock in the list
+		 * is updated. This keeps the app from sending too many requests
+		 * all at once.
+		 */
+		protected function timerHandler(event:*):void
+		{
+			var stockList:ArrayList = (model as ProductsModel).assetList;
+
+			if (stockList.length == 0) return;
+
+			if (index >= stockList.length) index = 0;
+
+			(model as ProductsModel).updateStockData(stockList.getItemAt(index) as Stock);
+			index++;
+
+			var newEvent:Event = new Event("update");
+			model.dispatchEvent(newEvent);
+		}
+	}
+}