flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@apache.org
Subject [2/2] git commit: [flex-asjs] [refs/heads/core_js_to_as] - Port of Mobile project.
Date Wed, 18 Nov 2015 19:55:18 GMT
Port of Mobile project.


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

Branch: refs/heads/core_js_to_as
Commit: 44a1bb9a092ba100293d087f7cfb482571dd57b4
Parents: 845bc6d
Author: Peter Ent <pent@apache.org>
Authored: Wed Nov 18 14:55:12 2015 -0500
Committer: Peter Ent <pent@apache.org>
Committed: Wed Nov 18 14:55:12 2015 -0500

----------------------------------------------------------------------
 frameworks/build.xml                            |   5 +-
 frameworks/projects/Mobile/as/defaults.css      |  33 +++
 .../projects/Mobile/as/src/CordovaClasses.as    |  36 +++
 .../projects/Mobile/as/src/MobileClasses.as     |  13 +-
 .../as/src/org/apache/flex/mobile/IView.as      |  43 +++
 .../src/org/apache/flex/mobile/IViewManager.as  |  42 +++
 .../src/org/apache/flex/mobile/ManagerBase.as   |  35 ++-
 .../apache/flex/mobile/StackedViewManager.as    | 161 ++++++++++++
 .../org/apache/flex/mobile/TabbedViewManager.as |  85 ++++++
 .../as/src/org/apache/flex/mobile/View.as       | 103 ++++++++
 .../org/apache/flex/mobile/ViewManagerBase.as   | 236 +++++++++++++++++
 .../flex/mobile/beads/StackedViewManagerView.as | 127 +++++++++
 .../flex/mobile/beads/TabbedViewManagerView.as  | 139 ++++++++++
 .../apache/flex/mobile/beads/ViewManagerView.as | 165 ++++++++++++
 .../apache/flex/mobile/chrome/NavigationBar.as  | 103 ++++++++
 .../src/org/apache/flex/mobile/chrome/TabBar.as |  50 ++++
 .../org/apache/flex/mobile/chrome/ToolBar.as    |  80 ++++++
 .../flex/mobile/models/ViewManagerModel.as      | 263 +++++++++++++++++++
 frameworks/projects/Mobile/asjs/defaults.css    |  33 ---
 .../asjs/src/org/apache/flex/mobile/IView.as    |  43 ---
 .../src/org/apache/flex/mobile/IViewManager.as  |  42 ---
 .../apache/flex/mobile/StackedViewManager.as    | 161 ------------
 .../org/apache/flex/mobile/TabbedViewManager.as |  85 ------
 .../asjs/src/org/apache/flex/mobile/View.as     |  96 -------
 .../org/apache/flex/mobile/ViewManagerBase.as   | 229 ----------------
 .../flex/mobile/beads/StackedViewManagerView.as | 127 ---------
 .../flex/mobile/beads/TabbedViewManagerView.as  | 139 ----------
 .../apache/flex/mobile/beads/ViewManagerView.as | 165 ------------
 .../apache/flex/mobile/chrome/NavigationBar.as  | 103 --------
 .../src/org/apache/flex/mobile/chrome/TabBar.as |  50 ----
 .../org/apache/flex/mobile/chrome/ToolBar.as    |  81 ------
 .../flex/mobile/models/ViewManagerModel.as      | 263 -------------------
 frameworks/projects/Mobile/build.xml            | 101 +++----
 .../projects/Mobile/compile-asjs-config.xml     |  30 ++-
 frameworks/projects/Mobile/compile-config.xml   |  12 +-
 35 files changed, 1782 insertions(+), 1697 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/build.xml b/frameworks/build.xml
index 02e225b..bb0c1c0 100644
--- a/frameworks/build.xml
+++ b/frameworks/build.xml
@@ -100,7 +100,6 @@
         <ant dir="${basedir}/projects/GoogleMaps" target="compile-asjs"/>
         <ant dir="${basedir}/projects/HTML5" target="compile-asjs"/>
         <ant dir="${basedir}/projects/JQuery" target="compile-asjs"/>
-        <ant dir="${basedir}/projects/Mobile" target="compile-asjs"/>
     </target>
 
     <target name="lint-js" description="Cross-compiles all SWCs">
@@ -110,7 +109,6 @@
         <ant dir="${basedir}/projects/GoogleMaps" target="lint-js"/>
         <ant dir="${basedir}/projects/HTML5" target="lint-js"/>
         <ant dir="${basedir}/projects/JQuery" target="lint-js"/>
-        <ant dir="${basedir}/projects/Mobile" target="lint-js"/>
     </target>
 
     <target name="re-compile" description="Builds all SWCs which should pick up the JS files from asjs">
@@ -121,7 +119,6 @@
         <ant dir="${basedir}/projects/GoogleMaps" target="compile"/>
         <ant dir="${basedir}/projects/HTML5" target="compile"/>
         <ant dir="${basedir}/projects/JQuery" target="compile"/>
-        <ant dir="${basedir}/projects/Mobile" target="compile"/>
     </target>
 
     <target name="js" depends="compile-asjs, lint-js" />
@@ -243,7 +240,7 @@
     </target>
 
     <target name="Mobile" description="Clean build of Mobile.swc">
-        <ant dir="${basedir}/projects/Mobile"/>
+        <ant dir="${basedir}/projects/Mobile" target="all"/>
     </target>
 
     <target name="Network" description="Clean build of Network.swc">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/defaults.css b/frameworks/projects/Mobile/as/defaults.css
new file mode 100644
index 0000000..d529595
--- /dev/null
+++ b/frameworks/projects/Mobile/as/defaults.css
@@ -0,0 +1,33 @@
+/*
+ *
+ *  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.
+ *
+ */
+
+@namespace "library://ns.apache.org/flexjs/basic";
+@namespace svg "library://ns.apache.org/flexjs/svg";
+
+StackedViewManager 
+{
+	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
+	IBeadView:  ClassReference("org.apache.flex.mobile.beads.StackedViewManagerView");
+}
+
+TabbedViewManager 
+{
+	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
+	IBeadView:  ClassReference("org.apache.flex.mobile.beads.TabbedViewManagerView");
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/CordovaClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/CordovaClasses.as b/frameworks/projects/Mobile/as/src/CordovaClasses.as
new file mode 100644
index 0000000..3b9dc98
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/CordovaClasses.as
@@ -0,0 +1,36 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+
+/**
+ *  @private
+ *  This class is used to link additional classes into rpc.swc
+ *  beyond those that are found by dependecy analysis starting
+ *  from the classes specified in manifest.xml.
+ */
+internal class CordovaClasses
+{	
+	import org.apache.cordova.camera.Camera; Camera;
+	import org.apache.cordova.Application; Application;
+	import org.apache.cordova.Weinre; Weinre;
+}
+
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/MobileClasses.as b/frameworks/projects/Mobile/as/src/MobileClasses.as
index 75d2960..fc933aa 100644
--- a/frameworks/projects/Mobile/as/src/MobileClasses.as
+++ b/frameworks/projects/Mobile/as/src/MobileClasses.as
@@ -27,11 +27,16 @@ package
  */
 internal class MobileClasses
 {	
-	import org.apache.cordova.camera.Camera; Camera;
-	import org.apache.cordova.Application; Application;
-	import org.apache.cordova.Weinre; Weinre;
-	
 	import org.apache.flex.mobile.ManagerBase; ManagerBase;
+	
+	import org.apache.flex.mobile.ViewManagerBase; ViewManagerBase;
+	import org.apache.flex.mobile.beads.StackedViewManagerView; StackedViewManagerView;
+	import org.apache.flex.mobile.beads.TabbedViewManagerView; TabbedViewManagerView;
+	import org.apache.flex.mobile.beads.ViewManagerView; ViewManagerView;
+	import org.apache.flex.mobile.chrome.NavigationBar; NavigationBar;
+	import org.apache.flex.mobile.chrome.TabBar; TabBar;
+	import org.apache.flex.mobile.chrome.ToolBar; ToolBar;
+	import org.apache.flex.mobile.models.ViewManagerModel; ViewManagerModel;
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as
new file mode 100644
index 0000000..232d212
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IView.as
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 IView interface is implemented by any class that can be managed by
+	 * an IViewManager.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public interface IView
+	{
+		/**
+		 * The parent view manager.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function get viewManager():IViewManager;
+		function set viewManager(value:IViewManager):void;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.as
new file mode 100644
index 0000000..54bb22a
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/IViewManager.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 org.apache.flex.mobile
+{
+	/**
+	 * The IViewManager interface is implemented by classes that manage or control
+	 * IViews.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public interface IViewManager extends IView
+	{
+		/**
+		 * The view that is currently active in the view manager.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function get selectedView():IView;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
index 8d444a5..5c2e149 100644
--- a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ManagerBase.as
@@ -21,6 +21,10 @@ package org.apache.flex.mobile
 	import org.apache.flex.core.IChrome;
 	import org.apache.flex.core.UIBase;
 	import org.apache.flex.events.Event;
+	COMPILE::JS
+	{
+			import org.apache.flex.core.WrappedHTMLElement;
+	}
 	
 	/**
 	 *  The ManagerBase is a base class for mobile display managers such as StackedViewManager
@@ -47,17 +51,38 @@ package org.apache.flex.mobile
 			super();
 			
 			_contentArea = new UIBase();
+			
+			COMPILE::AS3 {
+				addEventListener("initComplete", handleInitComplete);
+				addEventListener("sizeChanged", handleInitComplete);
+				addEventListener("widthChanged", handleInitComplete);
+				addEventListener("heightChanged", handleInitComplete);
+			}
+			
+			COMPILE::JS {
+				createElement();
+			}
+			
 			super.addElement(_contentArea,false);
+		}
+		
+		/**
+		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+			super.createElement();
+			element.className = 'ManagerBase';
+			
+			_contentArea.positioner.style['width'] = '100%';
+			_contentArea.positioner.style['height'] = '100%';
 			
-			addEventListener("initComplete", handleInitComplete);
-			addEventListener("sizeChanged", handleInitComplete);
-			addEventListener("widthChanged", handleInitComplete);
-			addEventListener("heightChanged", handleInitComplete);
+			return element;
 		}
 		
 		private function handleInitComplete(event:Event):void
 		{
-			trace("Manager base event: "+event.type+"; width="+width+", height="+height);
 			_contentArea.setWidthAndHeight(width, height, true);
 			// todo: listen for changes to this item
 			

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as
new file mode 100644
index 0000000..4b29d28
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/StackedViewManager.as
@@ -0,0 +1,161 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.events.Event;
+	import org.apache.flex.html.Container;
+	import org.apache.flex.mobile.IView;
+	import org.apache.flex.mobile.IViewManager;
+	import org.apache.flex.mobile.chrome.NavigationBar;
+	import org.apache.flex.mobile.chrome.ToolBar;
+	import org.apache.flex.mobile.models.ViewManagerModel;
+	
+	/**
+	 * The StackedViewManager displays a single View at a time from a
+	 * collection of Views where views[0] is at the bottom and views[n-1]
+	 * is at the top and displayed.
+	 * 
+	 * The StackedViewManager has an optional navigation bar at the top
+	 * and an optional tool bar at the bottom. The views are displayed
+	 * within the StackedViewManager's content area.
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class StackedViewManager extends ViewManagerBase implements IViewManager
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function StackedViewManager()
+		{
+			super();
+			
+			className = "StackedViewManager";
+		}
+		
+		/**
+		 * True if this view manager is displaying a ToolBar.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get hasToolBar():Boolean
+		{
+			return ViewManagerModel(model).toolBarItems != null;
+		}
+		
+		/**
+		 * The contents of the ToolBar.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get toolBarItems():Array
+		{
+			return ViewManagerModel(model).toolBarItems;
+		}
+		public function set toolBarItems(value:Array):void
+		{
+			ViewManagerModel(model).toolBarItems = value;
+		}
+		
+		/**
+		 * The ToolBar (or null if not present).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get toolBar():ToolBar
+		{
+			return ViewManagerModel(model).toolBar;
+		}
+
+		
+		private var _topView:IView;
+
+		/**
+		 * The top-most (current) view.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function get selectedView():IView
+		{
+			return _topView;
+		}
+
+		
+		/**
+		 *  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:IView):void
+		{
+			nextView.viewManager = this;
+			ViewManagerModel(model).pushView(nextView);
+			
+			removeElement(_topView);
+			_topView = nextView;
+			addElement(_topView);
+			
+			dispatchEvent( new Event("viewChanged") );
+		}
+		
+		/**
+		 *  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 (ViewManagerModel(model).views.length > 1) {
+				var lastView:Object = ViewManagerModel(model).popView();
+				removeElement(_topView);
+				addElement(lastView);
+				_topView = lastView as IView;
+				
+				dispatchEvent( new Event("viewChanged") );
+			}
+		}
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as
new file mode 100644
index 0000000..43fc6a6
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/TabbedViewManager.as
@@ -0,0 +1,85 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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;
+	import org.apache.flex.mobile.IView;
+	import org.apache.flex.mobile.IViewManager;
+	import org.apache.flex.mobile.chrome.TabBar;
+	import org.apache.flex.mobile.models.ViewManagerModel;
+	
+	/**
+	 * The TabbedViewManager displays a set of views, only one of which is active at
+	 * a time. The other views are reachable via a set of tab buttons at the bottom of
+	 * the view manager's space.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class TabbedViewManager extends ViewManagerBase implements IViewManager
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function TabbedViewManager()
+		{
+			super();
+			
+			className = "TabbedViewManager";
+		}
+		
+		/**
+		 * The TabBar (or null if not present).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get tabBar():TabBar
+		{
+			return ViewManagerModel(model).tabBar;
+		}
+		
+		/**
+		 * The index (starting at zero) of the currently visible view.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get selectedIndex():Number
+		{
+			return ViewManagerModel(model).selectedIndex;
+		}
+		public function set selectedIndex(value:Number):void
+		{
+			ViewManagerModel(model).selectedIndex = value;
+		}
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as
new file mode 100644
index 0000000..490d8bf
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/View.as
@@ -0,0 +1,103 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.IBead;
+	import org.apache.flex.core.IBeadController;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.html.Container;
+	
+	/**
+	 * The View class represents the area for a mobile app's primary
+	 * interface elements.
+	 */
+	public class View extends Container implements IView
+	{
+		public function View()
+		{
+			super();
+			
+			// views always take up 100% of their space
+			percentWidth = 100;
+			percentHeight = 100;
+		}
+		
+		private var _title:String;
+		public function get title():String
+		{
+			return _title;
+		}
+		public function set title(value:String):void
+		{
+			_title = value;
+		}
+		
+		COMPILE::AS3
+		override public function toString():String
+		{
+			return _title;
+		}
+		
+		COMPILE::JS
+		public function toString():String
+		{
+			return _title;
+		}
+		
+		private var _viewManager:IViewManager;
+		public function get viewManager():IViewManager
+		{
+			return _viewManager;
+		}
+		public function set viewManager(value:IViewManager):void
+		{
+			_viewManager = value;
+		}
+		
+		private var _controller:IBeadController;
+        
+        /**
+         *  Get the controller for the view.
+         * 
+         *  @flexjsignorecoercion Class
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+		public function get controller():IBeadController
+		{
+			if (_controller == null) {
+				_controller = getBeadByType(IBeadController) as IBeadController;
+				if (_controller == null) {
+                    var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadController") as Class;
+					_controller = new c() as IBeadController;
+					addBead(_controller);
+				}
+			}
+			return _controller;
+		}
+		public function set controller(value:IBeadController):void
+		{
+			_controller = value;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as
new file mode 100644
index 0000000..0da3f4d
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/ViewManagerBase.as
@@ -0,0 +1,236 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.Container;
+	import org.apache.flex.mobile.IView;
+	import org.apache.flex.mobile.IViewManager;
+	import org.apache.flex.mobile.chrome.NavigationBar;
+	import org.apache.flex.mobile.models.ViewManagerModel;
+	
+//	import org.apache.flex.html.beads.SolidBackgroundBead;
+//	import org.apache.flex.html.beads.SingleLineBorderBead;
+	
+	/**
+	 * Event dispatched when the current (selected) view changes.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	[Event(name="viewChanged")]
+	
+	/**
+	 * Base class for mobile navigation controls.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ViewManagerBase extends UIBase implements IViewManager
+	{
+		/**
+		 * Constructor.
+		 */
+		public function ViewManagerBase()
+		{
+			super();
+			
+			// views always fill their space
+			percentWidth = 100;
+			percentHeight = 100;
+			
+			model.addEventListener("selectedIndexChanged", changeView);
+			
+//			addBead(new SolidBackgroundBead());
+//			addBead(new SingleLineBorderBead());
+		}
+		
+		/**
+		 * A title that can be used in the NavigationBar.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get title():String
+		{
+			return ViewManagerModel(model).title;
+		}
+		public function set title(value:String):void
+		{
+			ViewManagerModel(model).title = value;
+		}
+		
+		COMPILE::AS3
+		override public function toString():String
+		{
+			return ViewManagerModel(model).title;
+		}
+		
+		/**
+		 * @private
+		 */
+		COMPILE::JS
+		public function toString():String
+		{
+			return ViewManagerModel(model).title;
+		}
+		
+		/**
+		 * True if this view manager instance is displaying a NavigationBar.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get hasNavigationBar():Boolean
+		{
+			return ViewManagerModel(model).navigationBarItems != null;
+		}
+		
+		/**
+		 * The items that make up the NavigationBar.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get navigationBarItems():Array
+		{
+			return ViewManagerModel(model).navigationBarItems;
+		}
+		public function set navigationBarItems(value:Array):void
+		{
+			ViewManagerModel(model).navigationBarItems = value;
+		}
+		
+		/**
+		 * The NavigationBar (or null if not present).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get navigationBar():NavigationBar
+		{
+			return ViewManagerModel(model).navigationBar; 
+		}
+		
+		/**
+		 *  The current set of views in the stack. The last entry is
+		 *  the top-most (visible) view.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get views():Array
+		{
+			return ViewManagerModel(model).views;
+		}
+		public function set views(value:Array):void
+		{
+			ViewManagerModel(model).views = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			
+			var n:int = ViewManagerModel(model).views.length;
+			if (n > 0) {
+				for (var i:int = 0; i < n; i++)
+				{
+					var view:IView = ViewManagerModel(model).views[i] as IView;
+					view.viewManager = this;
+					if (i == 0) {
+						addElement(view, true);
+					}
+				}
+				ViewManagerModel(model).selectedIndex = 0;
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		private function changeView( event:Event ):void
+		{
+			var index:Number = ViewManagerModel(model).selectedIndex;
+			if (_currentView) {
+				removeElement(_currentView);
+			}
+			_currentView = views[index];
+			addElement(_currentView);
+
+			dispatchEvent( new Event("viewChanged") );
+		}
+		
+		private var _currentView:IView;
+		
+		/**
+		 * The currently visible view.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get selectedView():IView
+		{
+			return _currentView;
+		}
+		
+		/**
+		 * IViewManager
+		 */
+		
+		private var _viewManager:IViewManager;
+		
+		/**
+		 * This view manager's parent view manager, if any.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get viewManager():IViewManager
+		{
+			return _viewManager;
+		}
+		public function set viewManager(value:IViewManager):void
+		{
+			_viewManager = value;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as
new file mode 100644
index 0000000..fd1a58b
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -0,0 +1,127 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.beads
+{	
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IViewportModel;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.html.beads.ContainerView;
+	import org.apache.flex.html.beads.layouts.HorizontalLayout;
+	import org.apache.flex.mobile.chrome.NavigationBar;
+	import org.apache.flex.mobile.chrome.ToolBar;
+	import org.apache.flex.mobile.models.ViewManagerModel;
+
+	/**
+	 * The StackedViewManagerView creates the visual elements of the StackedViewManager. This
+	 * includes a NavigationBar, ToolBar, and contentArea.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class StackedViewManagerView extends ViewManagerView
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function StackedViewManagerView()
+		{
+			super();
+		}
+		
+		private var _toolBar:ToolBar;
+
+		override public function set strand(value:IStrand):void
+		{
+			var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			if (model.toolBarItems)
+			{
+				_toolBar = new ToolBar();
+				_toolBar.controls = model.toolBarItems;
+				_toolBar.addBead(new HorizontalLayout());
+				UIBase(value).addElement(_toolBar,false);
+			}
+			
+			super.strand = value;
+		}
+		override public function get strand():IStrand
+		{
+			return super.strand;
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function layoutChromeElements():void
+		{
+			var host:UIBase = strand as UIBase;
+			var contentAreaY:Number = 0;
+			var contentAreaHeight:Number = host.height;
+			var toolbarHeight:Number = _toolBar == null ? 0 : _toolBar.height;
+			
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			if (navigationBar)
+			{
+				navigationBar.x = 0;
+				navigationBar.y = 0;
+				navigationBar.width = host.width;
+				
+				contentAreaHeight -= navigationBar.height;
+				contentAreaY = navigationBar.height;
+				
+				model.navigationBar = navigationBar;
+			}
+			
+			if (_toolBar)
+			{
+				_toolBar.x = 0;
+				_toolBar.y = host.height - toolbarHeight;
+				_toolBar.width = host.width;
+				
+				contentAreaHeight -= toolbarHeight;
+				
+				model.toolBar = _toolBar;
+			}
+			
+			if (contentAreaY < 0) contentAreaY = 0;
+			if (contentAreaHeight < 0) contentAreaHeight = 0;
+			
+			model.contentX = 0;
+			model.contentY = contentAreaY;
+			model.contentWidth = host.width;
+			model.contentHeight = contentAreaHeight;
+			
+			sizeViewsToFitContentArea();
+			
+			// notify the views that the content size has changed
+			IEventDispatcher(strand).dispatchEvent( new Event("contentSizeChanged") );
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as
new file mode 100644
index 0000000..be20d2c
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -0,0 +1,139 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.beads
+{
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IViewportModel;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.html.beads.ContainerView;
+	import org.apache.flex.html.beads.layouts.HorizontalLayout;
+	import org.apache.flex.mobile.chrome.NavigationBar;
+	import org.apache.flex.mobile.chrome.TabBar;
+	import org.apache.flex.mobile.models.ViewManagerModel;
+	
+	/**
+	 * The TabbedViewManagerView constructs the visual elements of the TabbedViewManager. The
+	 * elements may be a navigation bar, a tab bar, and the contentArea.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class TabbedViewManagerView extends ViewManagerView
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function TabbedViewManagerView()
+		{
+			super();
+		}
+		
+		private var _tabBar:TabBar;
+		
+		private var _strand:IStrand;
+		override public function get strand():IStrand
+		{
+			return _strand;
+		}
+		override public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			
+			var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			// TabbedViewManager always has a TabBar
+			_tabBar = new TabBar();
+			_tabBar.dataProvider = model.views;
+			_tabBar.labelField = "title";
+			_tabBar.addEventListener("change",handleButtonBarChange);
+			UIBase(_strand).addElement(_tabBar, false);
+			
+			super.strand = value;
+		}
+		
+		/**
+		 * @private
+		 */		
+		private function handleButtonBarChange(event:Event):void
+		{
+			var newIndex:Number = _tabBar.selectedIndex;
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			// doing this will trigger the selectedIndexChanged event which will
+			// tell the strand to switch views
+			model.selectedIndex = newIndex;
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function layoutChromeElements():void
+		{
+			var host:UIBase = _strand as UIBase;
+			var contentAreaY:Number = 0;
+			var contentAreaHeight:Number = host.height;
+			
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			if (navigationBar)
+			{
+				navigationBar.x = 0;
+				navigationBar.y = 0;
+				navigationBar.width = host.width;
+				
+				contentAreaHeight -= navigationBar.height;
+				contentAreaY = navigationBar.height;
+				
+				model.navigationBar = navigationBar;
+			}
+			
+			if (_tabBar)
+			{
+				_tabBar.x = 0;
+				_tabBar.y = host.height - _tabBar.height;
+				_tabBar.width = host.width;
+				_tabBar.dispatchEvent(new Event("layoutNeeded"));
+				
+				contentAreaHeight -= _tabBar.height;
+				
+				model.tabBar = _tabBar;
+			}
+			
+			model.contentX = 0;
+			model.contentY = contentAreaY;
+			model.contentWidth = host.width;
+			model.contentHeight = contentAreaHeight;
+			
+			sizeViewsToFitContentArea();
+			
+			// notify the views that the content size has changed
+			IEventDispatcher(strand).dispatchEvent( new Event("contentSizeChanged") );
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as
new file mode 100644
index 0000000..59baf94
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/beads/ViewManagerView.as
@@ -0,0 +1,165 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.beads
+{
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IBeadView;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.IViewportModel;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.html.Container;
+	import org.apache.flex.html.beads.layouts.HorizontalLayout;
+	import org.apache.flex.mobile.IView;
+	import org.apache.flex.mobile.chrome.NavigationBar;
+	import org.apache.flex.mobile.models.ViewManagerModel;
+	
+	/**
+	 * The ViewManagerView creates the visual elements of the StackedViewManager. This
+	 * includes a NavigationBar, ToolBar, and contentArea.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ViewManagerView implements IBeadView
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ViewManagerView()
+		{
+			super();
+		}
+		
+		public function get host():IUIBase
+		{
+			return _strand as IUIBase;
+		}
+		public function set host(value:IUIBase):void
+		{
+			// not implemented; getter only.
+		}
+		
+		private var _navigationBar:NavigationBar;
+		public function get navigationBar():NavigationBar
+		{
+			return _navigationBar;
+		}
+		public function set navigationBar(value:NavigationBar):void
+		{
+			// not implemented; getter only.
+		}
+		
+		private var _strand:IStrand;
+		public function get strand():IStrand
+		{
+			return _strand;
+		}
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			UIBase(_strand).addEventListener("sizeChanged", sizeChangedHandler);
+			UIBase(_strand).addEventListener("widthChanged", sizeChangedHandler);
+			UIBase(_strand).addEventListener("heightChanged", sizeChangedHandler);
+			
+			var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
+			model.addEventListener("selectedIndexChanged", viewsChangedHandler);
+
+			if (model.navigationBarItems)
+			{
+				_navigationBar = new NavigationBar();
+				_navigationBar.controls = model.navigationBarItems;
+				_navigationBar.addBead(new HorizontalLayout());
+				UIBase(_strand).addElement(_navigationBar, false);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function viewsChangedHandler(event:Event):void
+		{
+			layoutChromeElements();
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function sizeChangedHandler(event:Event):void
+		{
+			layoutChromeElements();
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function layoutChromeElements():void
+		{
+			var host:UIBase = _strand as UIBase;
+			var contentAreaY:Number = 0;
+			var contentAreaHeight:Number = host.height;
+			
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			if (_navigationBar)
+			{
+				_navigationBar.x = 0;
+				_navigationBar.y = 0;
+				_navigationBar.width = host.width;
+				
+				contentAreaHeight -= _navigationBar.height;
+				contentAreaY = _navigationBar.height;
+				
+				model.navigationBar = _navigationBar;
+			}
+			
+			model.contentX = 0;
+			model.contentY = contentAreaY;
+			model.contentWidth = host.width;
+			model.contentHeight = contentAreaHeight;
+			
+			sizeViewsToFitContentArea();
+		}
+		
+		protected function sizeViewsToFitContentArea():void
+		{
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			var n:int = ViewManagerModel(model).views.length;
+			if (n > 0) {
+				for (var i:int = 0; i < n; i++)
+				{
+					var view:IView = ViewManagerModel(model).views[i] as IView;
+					UIBase(view).x = model.contentX;
+					UIBase(view).y = model.contentY;
+					UIBase(view).setWidthAndHeight(model.contentWidth, model.contentHeight, true);
+				}
+			}
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as
new file mode 100644
index 0000000..5e7873e
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/NavigationBar.as
@@ -0,0 +1,103 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.chrome
+{
+	import org.apache.flex.core.IChrome;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.html.Container;
+	
+	/**
+	 * The NavigationBar class is part of the mobile view manager's chrome. When present,
+	 * it provides a place for content at the top of the view, above the contentArea.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class NavigationBar extends Container implements IChrome
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function NavigationBar()
+		{
+			super();
+			
+			className = "NavigationBar";
+		}
+		
+		public function hidesBackButton(value:Boolean):void
+		{
+			
+		}
+		
+		private var _controls:Array;
+		
+		/**
+		 * The controls of the NavigationBar (eg, a button to go back and a title).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set controls(value:Array):void
+		{
+			_controls = value;
+		}
+		public function get controls():Array
+		{
+			return _controls;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			
+			for (var i:int=0; i < _controls.length; i++)
+			{
+				addElement( _controls[i], false );
+				
+				var ctrl:IEventDispatcher = _controls[i] as IEventDispatcher;
+				ctrl.addEventListener("show", handleVisibilityChange);
+				ctrl.addEventListener("hide", handleVisibilityChange);
+			}
+			
+			dispatchEvent(new Event("layoutNeeded"));
+		}
+		
+		/**
+		 * @private
+		 */
+		private function handleVisibilityChange(event:Event):void
+		{
+			dispatchEvent(new Event("layoutNeeded"));
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as
new file mode 100644
index 0000000..6e54326
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/TabBar.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.chrome
+{
+	import org.apache.flex.core.IChrome;
+	import org.apache.flex.html.ButtonBar;
+	
+	/**
+	 *  The TabBar 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 implements IChrome
+	{
+		/**
+		 *  Constructor
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function TabBar()
+		{
+			super();
+			
+			className = "TabBar";
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as
new file mode 100644
index 0000000..af63d49
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/chrome/ToolBar.as
@@ -0,0 +1,80 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.chrome
+{
+	import org.apache.flex.core.IBeadLayout;
+	import org.apache.flex.core.IChrome;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.html.Container;
+	
+	/**
+	 * The ToolBar class provides a space below the contentArea of a view manager which can
+	 * be used to house controls for the view.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ToolBar extends Container implements IChrome
+	{
+		public function ToolBar()
+		{
+			super();
+			
+			className = "ToolBar";
+		}
+		
+		private var _controls:Array;
+		
+		/**
+		 * The control components of the ToolBar (eg, a settings button).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set controls(value:Array):void
+		{
+			_controls = value;
+		}
+		public function get controls():Array
+		{
+			return _controls;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			
+			var layout:IBeadLayout = this.getBeadByType(IBeadLayout) as IBeadLayout;
+			
+			for (var i:int=0; i < _controls.length; i++)
+			{
+				addElement( _controls[i], false );
+			}
+			
+			dispatchEvent(new Event("layoutNeeded"));
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as
new file mode 100644
index 0000000..c57cc61
--- /dev/null
+++ b/frameworks/projects/Mobile/as/src/org/apache/flex/mobile/models/ViewManagerModel.as
@@ -0,0 +1,263 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.models
+{
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.mobile.chrome.NavigationBar;
+	import org.apache.flex.mobile.chrome.TabBar;
+	import org.apache.flex.mobile.chrome.ToolBar;
+	
+	/**
+	 * The ViewManagerModel houses properties and values common to the components
+	 * which make up view managers. These properties include the title, which view
+	 * is currently active and selected.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ViewManagerModel extends EventDispatcher implements IBeadModel
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ViewManagerModel()
+		{
+			super();
+			
+			_views = new Array();
+		}
+		
+		private var _strand:IStrand;
+		
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+		
+		public var contentX:Number = 0;
+		public var contentY:Number = 0;
+		public var contentWidth:Number = 0;
+		public var contentHeight:Number = 0;
+		
+		private var _views:Array;
+		
+		/**
+		 * The array of views displayed in the contentArea of the ViewManager.
+		 *  
+		 *  @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 (value != _views) {
+				_views = value;
+				_selectedIndex = value.length - 1;
+				dispatchEvent(new Event("viewsChanged"));
+			}
+		}
+		
+		/**
+		 * Pushes a view onto the top/end of the stack of views. This view becomes
+		 * the active view. Mostly used by the StackedViewManager.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function pushView(value:Object):void
+		{
+			_views.push(value);
+			_selectedIndex = _views.length - 1;
+			dispatchEvent(new Event("viewPushed"));
+		}
+		
+		/**
+		 * Removes the most recently added view. The next view in the stack becomes the
+		 * active view. Mostly used by StackedViewManager.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function popView():Object
+		{
+			if (_views.length > 1) {
+				var discard:Object = _views.pop();
+				_selectedIndex = _views.length - 1;
+				dispatchEvent(new Event("viewPopped"));
+			}
+			return _views[_views.length-1];
+		}
+		
+		private var _selectedIndex:Number = -1;
+		
+		/**
+		 * The index into the views array of the currently active view.
+		 *  
+		 *  @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 != _selectedIndex) {
+				_selectedIndex = value;
+				dispatchEvent(new Event("selectedIndexChanged"));
+			}
+		}
+		
+		private var _title:String;
+		
+		/**
+		 * The title of the view..
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get title():String
+		{
+			return _title;
+		}
+		public function set title(value:String):void
+		{
+			_title = value;
+		}
+		
+		private var _navigationBarItems:Array;
+		
+		/**
+		 * The array of controls that make up the NavigationBar.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get navigationBarItems():Array
+		{
+			return _navigationBarItems;
+		}
+		public function set navigationBarItems(value:Array):void
+		{
+			_navigationBarItems = value;
+		}
+		
+		private var _navigationBar:NavigationBar;
+		
+		/**
+		 * The NavigationBar (or null if not present).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get navigationBar():NavigationBar
+		{
+			return _navigationBar;
+		}
+		public function set navigationBar(value:NavigationBar):void
+		{
+			_navigationBar = value;
+		}
+		
+		private var _toolBarItems:Array;
+		
+		/**
+		 * The array of controls that make up the ToolBar..
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get toolBarItems():Array
+		{
+			return _toolBarItems;
+		}
+		public function set toolBarItems(value:Array):void
+		{
+			_toolBarItems = value;
+		}
+		
+		private var _toolBar:ToolBar;
+		
+		/**
+		 * The ToolBar (or null if not present).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get toolBar():ToolBar
+		{
+			return _toolBar;
+		}
+		public function set toolBar(value:ToolBar):void
+		{
+			_toolBar = value;
+		}
+		
+		private var _tabBar:TabBar;
+		
+		/**
+		 * The TabBar (or null if not present).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get tabBar():TabBar
+		{
+			return _tabBar;
+		}
+		public function set tabBar(value:TabBar):void
+		{
+			_tabBar = value;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/defaults.css b/frameworks/projects/Mobile/asjs/defaults.css
deleted file mode 100644
index d529595..0000000
--- a/frameworks/projects/Mobile/asjs/defaults.css
+++ /dev/null
@@ -1,33 +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.
- *
- */
-
-@namespace "library://ns.apache.org/flexjs/basic";
-@namespace svg "library://ns.apache.org/flexjs/svg";
-
-StackedViewManager 
-{
-	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
-	IBeadView:  ClassReference("org.apache.flex.mobile.beads.StackedViewManagerView");
-}
-
-TabbedViewManager 
-{
-	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
-	IBeadView:  ClassReference("org.apache.flex.mobile.beads.TabbedViewManagerView");
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as
deleted file mode 100644
index 232d212..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IView.as
+++ /dev/null
@@ -1,43 +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 org.apache.flex.mobile
-{
-	/**
-	 * The IView interface is implemented by any class that can be managed by
-	 * an IViewManager.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public interface IView
-	{
-		/**
-		 * The parent view manager.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		function get viewManager():IViewManager;
-		function set viewManager(value:IViewManager):void;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as
deleted file mode 100644
index 54bb22a..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/IViewManager.as
+++ /dev/null
@@ -1,42 +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 org.apache.flex.mobile
-{
-	/**
-	 * The IViewManager interface is implemented by classes that manage or control
-	 * IViews.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public interface IViewManager extends IView
-	{
-		/**
-		 * The view that is currently active in the view manager.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		function get selectedView():IView;
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as
deleted file mode 100644
index 4b29d28..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/StackedViewManager.as
+++ /dev/null
@@ -1,161 +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 org.apache.flex.mobile
-{	
-	import org.apache.flex.events.Event;
-	import org.apache.flex.html.Container;
-	import org.apache.flex.mobile.IView;
-	import org.apache.flex.mobile.IViewManager;
-	import org.apache.flex.mobile.chrome.NavigationBar;
-	import org.apache.flex.mobile.chrome.ToolBar;
-	import org.apache.flex.mobile.models.ViewManagerModel;
-	
-	/**
-	 * The StackedViewManager displays a single View at a time from a
-	 * collection of Views where views[0] is at the bottom and views[n-1]
-	 * is at the top and displayed.
-	 * 
-	 * The StackedViewManager has an optional navigation bar at the top
-	 * and an optional tool bar at the bottom. The views are displayed
-	 * within the StackedViewManager's content area.
-	 * 
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class StackedViewManager extends ViewManagerBase implements IViewManager
-	{
-		/**
-		 * Constructor.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function StackedViewManager()
-		{
-			super();
-			
-			className = "StackedViewManager";
-		}
-		
-		/**
-		 * True if this view manager is displaying a ToolBar.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get hasToolBar():Boolean
-		{
-			return ViewManagerModel(model).toolBarItems != null;
-		}
-		
-		/**
-		 * The contents of the ToolBar.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get toolBarItems():Array
-		{
-			return ViewManagerModel(model).toolBarItems;
-		}
-		public function set toolBarItems(value:Array):void
-		{
-			ViewManagerModel(model).toolBarItems = value;
-		}
-		
-		/**
-		 * The ToolBar (or null if not present).
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get toolBar():ToolBar
-		{
-			return ViewManagerModel(model).toolBar;
-		}
-
-		
-		private var _topView:IView;
-
-		/**
-		 * The top-most (current) view.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function get selectedView():IView
-		{
-			return _topView;
-		}
-
-		
-		/**
-		 *  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:IView):void
-		{
-			nextView.viewManager = this;
-			ViewManagerModel(model).pushView(nextView);
-			
-			removeElement(_topView);
-			_topView = nextView;
-			addElement(_topView);
-			
-			dispatchEvent( new Event("viewChanged") );
-		}
-		
-		/**
-		 *  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 (ViewManagerModel(model).views.length > 1) {
-				var lastView:Object = ViewManagerModel(model).popView();
-				removeElement(_topView);
-				addElement(lastView);
-				_topView = lastView as IView;
-				
-				dispatchEvent( new Event("viewChanged") );
-			}
-		}
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as
deleted file mode 100644
index 43fc6a6..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/TabbedViewManager.as
+++ /dev/null
@@ -1,85 +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 org.apache.flex.mobile
-{	
-	import org.apache.flex.html.Container;
-	import org.apache.flex.mobile.IView;
-	import org.apache.flex.mobile.IViewManager;
-	import org.apache.flex.mobile.chrome.TabBar;
-	import org.apache.flex.mobile.models.ViewManagerModel;
-	
-	/**
-	 * The TabbedViewManager displays a set of views, only one of which is active at
-	 * a time. The other views are reachable via a set of tab buttons at the bottom of
-	 * the view manager's space.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class TabbedViewManager extends ViewManagerBase implements IViewManager
-	{
-		/**
-		 * Constructor.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function TabbedViewManager()
-		{
-			super();
-			
-			className = "TabbedViewManager";
-		}
-		
-		/**
-		 * The TabBar (or null if not present).
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get tabBar():TabBar
-		{
-			return ViewManagerModel(model).tabBar;
-		}
-		
-		/**
-		 * The index (starting at zero) of the currently visible view.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get selectedIndex():Number
-		{
-			return ViewManagerModel(model).selectedIndex;
-		}
-		public function set selectedIndex(value:Number):void
-		{
-			ViewManagerModel(model).selectedIndex = value;
-		}
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as
deleted file mode 100644
index 8b48536..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/View.as
+++ /dev/null
@@ -1,96 +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 org.apache.flex.mobile
-{
-	import org.apache.flex.core.IBead;
-	import org.apache.flex.core.IBeadController;
-	import org.apache.flex.core.IUIBase;
-	import org.apache.flex.core.ValuesManager;
-	import org.apache.flex.html.Container;
-	
-	/**
-	 * The View class represents the area for a mobile app's primary
-	 * interface elements.
-	 */
-	public class View extends Container implements IView
-	{
-		public function View()
-		{
-			super();
-			
-			// views always take up 100% of their space
-			percentWidth = 100;
-			percentHeight = 100;
-		}
-		
-		private var _title:String;
-		public function get title():String
-		{
-			return _title;
-		}
-		public function set title(value:String):void
-		{
-			_title = value;
-		}
-		
-		override public function toString():String
-		{
-			return _title;
-		}
-		
-		private var _viewManager:IViewManager;
-		public function get viewManager():IViewManager
-		{
-			return _viewManager;
-		}
-		public function set viewManager(value:IViewManager):void
-		{
-			_viewManager = value;
-		}
-		
-		private var _controller:IBeadController;
-        
-        /**
-         *  Get the controller for the view.
-         * 
-         *  @flexjsignorecoercion Class
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public function get controller():IBeadController
-		{
-			if (_controller == null) {
-				_controller = getBeadByType(IBeadController) as IBeadController;
-				if (_controller == null) {
-                    var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadController") as Class;
-					_controller = new c() as IBeadController;
-					addBead(_controller);
-				}
-			}
-			return _controller;
-		}
-		public function set controller(value:IBeadController):void
-		{
-			_controller = value;
-		}
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/44a1bb9a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as
deleted file mode 100644
index d435157..0000000
--- a/frameworks/projects/Mobile/asjs/src/org/apache/flex/mobile/ViewManagerBase.as
+++ /dev/null
@@ -1,229 +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 org.apache.flex.mobile
-{
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.html.Container;
-	import org.apache.flex.mobile.IView;
-	import org.apache.flex.mobile.IViewManager;
-	import org.apache.flex.mobile.chrome.NavigationBar;
-	import org.apache.flex.mobile.models.ViewManagerModel;
-	
-//	import org.apache.flex.html.beads.SolidBackgroundBead;
-//	import org.apache.flex.html.beads.SingleLineBorderBead;
-	
-	/**
-	 * Event dispatched when the current (selected) view changes.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	[Event(name="viewChanged")]
-	
-	/**
-	 * Base class for mobile navigation controls.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class ViewManagerBase extends UIBase implements IViewManager
-	{
-		/**
-		 * Constructor.
-		 */
-		public function ViewManagerBase()
-		{
-			super();
-			
-			// views always fill their space
-			percentWidth = 100;
-			percentHeight = 100;
-			
-			model.addEventListener("selectedIndexChanged", changeView);
-			
-//			addBead(new SolidBackgroundBead());
-//			addBead(new SingleLineBorderBead());
-		}
-		
-		/**
-		 * A title that can be used in the NavigationBar.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get title():String
-		{
-			return ViewManagerModel(model).title;
-		}
-		public function set title(value:String):void
-		{
-			ViewManagerModel(model).title = value;
-		}
-		
-		/**
-		 * @private
-		 */
-		override public function toString():String
-		{
-			return ViewManagerModel(model).title;
-		}
-		
-		/**
-		 * True if this view manager instance is displaying a NavigationBar.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get hasNavigationBar():Boolean
-		{
-			return ViewManagerModel(model).navigationBarItems != null;
-		}
-		
-		/**
-		 * The items that make up the NavigationBar.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get navigationBarItems():Array
-		{
-			return ViewManagerModel(model).navigationBarItems;
-		}
-		public function set navigationBarItems(value:Array):void
-		{
-			ViewManagerModel(model).navigationBarItems = value;
-		}
-		
-		/**
-		 * The NavigationBar (or null if not present).
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get navigationBar():NavigationBar
-		{
-			return ViewManagerModel(model).navigationBar; 
-		}
-		
-		/**
-		 *  The current set of views in the stack. The last entry is
-		 *  the top-most (visible) view.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get views():Array
-		{
-			return ViewManagerModel(model).views;
-		}
-		public function set views(value:Array):void
-		{
-			ViewManagerModel(model).views = value;
-		}
-		
-		/**
-		 * @private
-		 */
-		override public function addedToParent():void
-		{
-			super.addedToParent();
-			
-			var n:int = ViewManagerModel(model).views.length;
-			if (n > 0) {
-				for (var i:int = 0; i < n; i++)
-				{
-					var view:IView = ViewManagerModel(model).views[i] as IView;
-					view.viewManager = this;
-					if (i == 0) {
-						addElement(view, true);
-					}
-				}
-				ViewManagerModel(model).selectedIndex = 0;
-			}
-		}
-		
-		/**
-		 * @private
-		 */
-		private function changeView( event:Event ):void
-		{
-			var index:Number = ViewManagerModel(model).selectedIndex;
-			if (_currentView) {
-				removeElement(_currentView);
-			}
-			_currentView = views[index];
-			addElement(_currentView);
-
-			dispatchEvent( new Event("viewChanged") );
-		}
-		
-		private var _currentView:IView;
-		
-		/**
-		 * The currently visible view.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get selectedView():IView
-		{
-			return _currentView;
-		}
-		
-		/**
-		 * IViewManager
-		 */
-		
-		private var _viewManager:IViewManager;
-		
-		/**
-		 * This view manager's parent view manager, if any.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get viewManager():IViewManager
-		{
-			return _viewManager;
-		}
-		public function set viewManager(value:IViewManager):void
-		{
-			_viewManager = value;
-		}
-	}
-}
\ No newline at end of file


Mime
View raw message