You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/04/21 16:35:25 UTC

[01/43] git commit: [flex-asjs] [refs/heads/dual] - Initial changes for Mobile project.

Repository: flex-asjs
Updated Branches:
  refs/heads/dual 9fd9b78b7 -> 31e3c55be


Initial changes for 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/e0b3528a
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/e0b3528a
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/e0b3528a

Branch: refs/heads/dual
Commit: e0b3528a795f1a99987ce5e25cc7f89986b6d735
Parents: ae5cb4e
Author: Peter Ent <pe...@apache.org>
Authored: Wed Apr 12 15:39:56 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Apr 12 15:39:56 2017 -0400

----------------------------------------------------------------------
 .../ButtonBarButtonItemRenderer.as              |  34 +++-
 .../Mobile/src/main/flex/MobileClasses.as       |   1 +
 .../apache/flex/mobile/ManagedContentArea.as    |  55 ++++++
 .../apache/flex/mobile/StackedViewManager.as    |  51 ++++--
 .../org/apache/flex/mobile/TabbedViewManager.as |  42 +++++
 .../flex/org/apache/flex/mobile/TitleView.as    |   4 -
 .../org/apache/flex/mobile/ViewManagerBase.as   |  52 ++----
 .../flex/mobile/beads/StackedViewManagerView.as | 175 +++++++++++++------
 .../flex/mobile/beads/TabbedViewManagerView.as  | 175 +++++++++++++------
 .../flex/mobile/beads/ViewManagerViewBase.as    | 123 ++++++-------
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../Mobile/src/main/resources/defaults.css      |  21 +++
 12 files changed, 511 insertions(+), 223 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
index 214125e..4e7ed07 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
@@ -26,6 +26,11 @@ package org.apache.flex.html.supportClasses
 	import org.apache.flex.html.TextButton;
 	import org.apache.flex.html.beads.ITextItemRenderer;
 	import org.apache.flex.events.ItemClickedEvent;
+	
+	COMPILE::JS
+	{
+		import org.apache.flex.core.WrappedHTMLElement;            
+	}
 
 	/**
 	 *  The ButtonBarButtonItemRenderer class handles the display of each item for the 
@@ -52,6 +57,18 @@ package org.apache.flex.html.supportClasses
 			super();
 		}
 		
+		/**
+		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+		 * @flexjsignorecoercion HTMLElement
+		 */
+		COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
+			var result:WrappedHTMLElement = super.createElement();
+			trace("Element "+element+"; positioner "+positioner);
+			return result;
+		}
+		
 		protected var textButton:TextButton;
 		
 		/**
@@ -96,8 +113,14 @@ package org.apache.flex.html.supportClasses
 		 */
 		override public function setWidth(value:Number, noEvent:Boolean = false):void
 		{
-			super.setWidth(value, noEvent);
+			super.setWidth(value, true);
 			textButton.width = value;
+			COMPILE::SWF {
+				textButton.height = height;
+			}
+			COMPILE::JS {
+				textButton.percentHeight = 100;
+			}
 		}
 		
 		/**
@@ -105,8 +128,14 @@ package org.apache.flex.html.supportClasses
 		 */
 		override public function setHeight(value:Number, noEvent:Boolean = false):void
 		{
-			super.setHeight(value, noEvent);
+			super.setHeight(value, true);
 			textButton.height = value;
+			COMPILE::SWF {
+				textButton.width = width;
+			}
+			COMPILE::JS {
+				textButton.percentWidth = 100;
+			}
 		}
 		
 		/**
@@ -125,7 +154,6 @@ package org.apache.flex.html.supportClasses
 			var added:Boolean = false;
 			if (textButton == null) {
 				textButton = new TextButton();
-				textButton.percentWidth = 100;
 				
 				// listen for clicks on the button and translate them into
 				// an itemClicked event.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
index 7c650fd..ea74217 100644
--- a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
+++ b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
@@ -33,6 +33,7 @@ internal class MobileClasses
 	import org.apache.flex.mobile.beads.DatePickerView; DatePickerView;
 	import org.apache.flex.mobile.ToggleSwitch; ToggleSwitch;
 	import org.apache.flex.mobile.ViewManagerBase; ViewManagerBase;
+	import org.apache.flex.mobile.ManagedContentArea; ManagedContentArea;
 	import org.apache.flex.mobile.beads.StackedViewManagerView; StackedViewManagerView;
 	import org.apache.flex.mobile.beads.TabbedViewManagerView; TabbedViewManagerView;
 	import org.apache.flex.mobile.beads.ViewManagerViewBase; ViewManagerViewBase;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.as
new file mode 100644
index 0000000..16081e5
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.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 org.apache.flex.mobile
+{
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.html.Group;
+	import org.apache.flex.events.Event;
+	
+	COMPILE::JS
+	{
+			import org.apache.flex.core.WrappedHTMLElement;
+	}
+	
+	/**
+	 *  The ManagedContentArea is the space in which views are displayed by the 
+	 *  view manager classes.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ManagedContentArea extends Group
+	{
+		/**
+		 * Constructor.
+	     *  
+	     *  @langversion 3.0
+	     *  @playerversion Flash 10.2
+	     *  @playerversion AIR 2.6
+	     *  @productversion FlexJS 0.0
+		 */
+		public function ManagedContentArea()
+		{
+			super();
+			className = "ManagedContentArea";
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
index 9322e66..79368fd 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
@@ -26,6 +26,7 @@ package org.apache.flex.mobile
 	import org.apache.flex.mobile.chrome.NavigationBar;
 	import org.apache.flex.mobile.chrome.ToolBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
+	import org.apache.flex.mobile.beads.StackedViewManagerView;
 	
 	[Event(name="viewChanged",type="org.apache.flex.events.Event")]
 	
@@ -127,6 +128,22 @@ package org.apache.flex.mobile
 		{
 			return _topView;
 		}
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			
+//			var tabbedView:StackedViewManagerView = getBeadByType(StackedViewManagerView) as StackedViewManagerView;
+//			
+//			var n:int = ViewManagerModel(model).views.length;
+//			if (n > 0) {
+//				var view:IViewManagerView = ViewManagerModel(model).views[0] as IViewManagerView;
+//				push(view);
+//			}
+		}
 
 		
 		/**
@@ -142,13 +159,15 @@ package org.apache.flex.mobile
 			nextView.viewManager = this;
 			ViewManagerModel(model).pushView(nextView);
 			
-			if (_topView != null) {
-				removeElement(_topView);
-			}
-			_topView = nextView;
-			addElement(_topView);
-			
-			dispatchEvent( new Event("viewChanged") );
+//			var stackedView:StackedViewManagerView = getBeadByType(StackedViewManagerView) as StackedViewManagerView;
+//			
+//			if (_topView != null) {
+//				stackedView.contentArea.removeElement(_topView);
+//			}
+//			_topView = nextView;
+//			stackedView.contentArea.addElement(_topView);
+//			
+//			dispatchEvent( new Event("viewChanged") );
 		}
 		
 		/**
@@ -161,14 +180,16 @@ package org.apache.flex.mobile
 		 */
 		public function pop():void
 		{
-			if (ViewManagerModel(model).views.length > 1) {
-				var lastView:IChild = ViewManagerModel(model).popView() as IChild;
-				removeElement(_topView);
-				addElement(lastView);
-				_topView = lastView as IViewManagerView;
-				
-				dispatchEvent( new Event("viewChanged") );
-			}
+			var stackedView:StackedViewManagerView = getBeadByType(StackedViewManagerView) as StackedViewManagerView;
+			
+//			if (ViewManagerModel(model).views.length > 1) {
+//				var lastView:IChild = ViewManagerModel(model).popView() as IChild;
+//				stackedView.contentArea.removeElement(_topView);
+//				stackedView.contentArea.addElement(lastView);
+//				_topView = lastView as IViewManagerView;
+//				
+//				dispatchEvent( new Event("viewChanged") );
+//			}
 		}
 
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
index 243e285..3b0d89d 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
@@ -18,11 +18,13 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.mobile
 {	
+	import org.apache.flex.events.Event;
 	import org.apache.flex.html.Container;
 	import org.apache.flex.mobile.IViewManagerView;
 	import org.apache.flex.mobile.IViewManager;
 	import org.apache.flex.mobile.chrome.TabBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
+	import org.apache.flex.mobile.beads.TabbedViewManagerView;
 	
 	[Event(name="viewChanged",type="org.apache.flex.events.Event")]
 	
@@ -82,6 +84,46 @@ package org.apache.flex.mobile
 		{
 			ViewManagerModel(model).selectedIndex = value;
 		}
+		
+		/**
+		 * @private
+		 */
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			
+//			var tabbedView:TabbedViewManagerView = getBeadByType(TabbedViewManagerView) as TabbedViewManagerView;
+//			
+//			var n:int = ViewManagerModel(model).views.length;
+//			if (n > 0) {
+//				for (var i:int = 0; i < n; i++)
+//				{
+//					var view:IViewManagerView = ViewManagerModel(model).views[i] as IViewManagerView;
+//					view.viewManager = this;
+//					if (i == 0) {
+//						tabbedView.contentArea.addElement(view, true);
+//					}
+//				}
+//				ViewManagerModel(model).selectedIndex = 0;
+//			}
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function changeView( event:Event ):void
+		{
+//			var tabbedView:TabbedViewManagerView = getBeadByType(TabbedViewManagerView) as TabbedViewManagerView;
+//			
+//			var index:Number = ViewManagerModel(model).selectedIndex;
+//			if (currentView) {
+//				tabbedView.contentArea.removeElement(currentView);
+//			}
+//			currentView = views[index];
+//			tabbedView.contentArea.addElement(currentView);
+//
+//			dispatchEvent( new Event("viewChanged") );
+		}
 
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TitleView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TitleView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TitleView.as
index 504f62e..0200e72 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TitleView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TitleView.as
@@ -33,10 +33,6 @@ package org.apache.flex.mobile
 		public function TitleView()
 		{
 			super();
-			
-			// views always take up 100% of their space
-			percentWidth = 100;
-			percentHeight = 100;
 		}
 		
 		private var _title:String;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
index 6d7175e..cc16ae3 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
@@ -20,15 +20,12 @@ 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.html.Group;
 	import org.apache.flex.mobile.IViewManagerView;
 	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.
 	 *  
@@ -47,7 +44,7 @@ package org.apache.flex.mobile
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class ViewManagerBase extends UIBase implements IViewManager
+	public class ViewManagerBase extends Group implements IViewManager
 	{
 		/**
 		 * Constructor.
@@ -61,9 +58,7 @@ package org.apache.flex.mobile
 			percentHeight = 100;
 			
 			model.addEventListener("selectedIndexChanged", changeView);
-			
-//			addBead(new SolidBackgroundBead());
-//			addBead(new SingleLineBorderBead());
+
 		}
 		
 		/**
@@ -162,40 +157,21 @@ package org.apache.flex.mobile
 		/**
 		 * @private
 		 */
-		override public function addedToParent():void
+		protected function changeView( event:Event ):void
 		{
-			super.addedToParent();
-			
-			var n:int = ViewManagerModel(model).views.length;
-			if (n > 0) {
-				for (var i:int = 0; i < n; i++)
-				{
-					var view:IViewManagerView = ViewManagerModel(model).views[i] as IViewManagerView;
-					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") );
+			// handled in subclass
 		}
 		
 		private var _currentView:IViewManagerView;
+		public function get currentView():IViewManagerView
+		{
+			return _currentView;
+		}
+		public function set currentView(value:IViewManagerView):void
+		{
+			_currentView = value;
+			// probably need to dispatch an event or do something more complex
+		}
 		
 		/**
 		 * The currently visible view.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
index 85368ae..bd99b00 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -26,6 +26,8 @@ package org.apache.flex.mobile.beads
 	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.IViewManagerView;
+	import org.apache.flex.mobile.ManagedContentArea;
 	import org.apache.flex.mobile.chrome.NavigationBar;
 	import org.apache.flex.mobile.chrome.ToolBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
@@ -54,74 +56,145 @@ package org.apache.flex.mobile.beads
 			super();
 		}
 		
-		private var _toolBar:ToolBar;
-
+		private var _strand:IStrand;
+		private var _contentArea:ManagedContentArea;
+		
+		public function get contentArea():ManagedContentArea
+		{
+			return _contentArea;
+		}
+		
+		public function get toolBar():ToolBar
+		{
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			return model.toolBar;
+		}
+		public function set toolBar(value:ToolBar):void
+		{
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			model.toolBar = value;
+		}
+		
+		override public function get strand():IStrand
+		{
+			return _strand;
+		}
 		override public function set strand(value:IStrand):void
 		{
+			_strand = value;
+			super.strand = value;
+			
+			// The content area will hold the views
+			_contentArea = new ManagedContentArea();
+			
 			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);
+				var tbar:ToolBar = new ToolBar();
+				tbar.controls = model.toolBarItems;
+				tbar.addBead(new HorizontalLayout());
+				toolBar = tbar;
 			}
-			
-			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;
+		override protected function handleInitComplete(event:Event):void
+		{			
+			super.handleInitComplete(event);
 			
-			if (navigationBar)
-			{
-				navigationBar.x = 0;
-				navigationBar.y = 0;
-				navigationBar.width = host.width;
-				
-				contentAreaHeight -= navigationBar.height;
-				contentAreaY = navigationBar.height;
-				
-				model.navigationBar = navigationBar;
+			COMPILE::SWF {
+				_contentArea.percentWidth = 100;
+				_contentArea.percentHeight = 100;
 			}
+			UIBase(_strand).addElement(_contentArea);
 			
-			if (_toolBar)
-			{
-				_toolBar.x = 0;
-				_toolBar.y = host.height - toolbarHeight;
-				_toolBar.width = host.width;
-				
-				contentAreaHeight -= toolbarHeight;
-				
-				model.toolBar = _toolBar;
+			if (toolBar) {
+				UIBase(_strand).addElement(toolBar);
 			}
 			
-			if (contentAreaY < 0) contentAreaY = 0;
-			if (contentAreaHeight < 0) contentAreaHeight = 0;
+			performLayout(event);
 			
-			model.contentX = 0;
-			model.contentY = contentAreaY;
-			model.contentWidth = host.width;
-			model.contentHeight = contentAreaHeight;
+			showViewByIndex(0);
+		}
+		
+		private var _topView:IViewManagerView;
+		
+		protected function showViewByIndex(index:int):void
+		{
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
 			
-			sizeViewsToFitContentArea();
+			if (_topView != null) {
+				contentArea.removeElement(_topView);
+			}
+			_topView = model.views[index] as IViewManagerView;
+			contentArea.addElement(_topView);
 			
-			// notify the views that the content size has changed
-			IEventDispatcher(strand).dispatchEvent( new Event("contentSizeChanged") );
+			COMPILE::JS {
+				if (_topView) {
+					UIBase(_topView).element.style["flex-grow"] = "1";
+				}
+			}
 		}
+		
+		override protected function layoutViewAfterContentLayout():void
+		{
+			super.layoutViewAfterContentLayout();
+			
+			COMPILE::SWF {
+				if (_topView) {
+					UIBase(_topView).width = contentArea.width;
+					UIBase(_topView).height = contentArea.height;
+				}
+			}
+		}
+		
+		/**
+		 * @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/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
index 787375d..227ae74 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -26,9 +26,12 @@ package org.apache.flex.mobile.beads
 	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.IViewManagerView;
+	import org.apache.flex.mobile.ManagedContentArea;
 	import org.apache.flex.mobile.chrome.NavigationBar;
 	import org.apache.flex.mobile.chrome.TabBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
+	import org.apache.flex.mobile.beads.TabbedViewManagerView;
 	
 	/**
 	 * The TabbedViewManagerView constructs the visual elements of the TabbedViewManager. The
@@ -54,9 +57,25 @@ package org.apache.flex.mobile.beads
 			super();
 		}
 		
-		private var _tabBar:TabBar;
-		
 		private var _strand:IStrand;
+		private var _contentArea:ManagedContentArea;
+		
+		public function get tabBar():TabBar
+		{
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			return model.tabBar;
+		}
+		public function set tabBar(value:TabBar):void
+		{
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			model.tabBar = value;
+		}
+		
+		public function get contentArea():ManagedContentArea
+		{
+			return _contentArea;
+		}
+		
 		override public function get strand():IStrand
 		{
 			return _strand;
@@ -64,17 +83,69 @@ package org.apache.flex.mobile.beads
 		override public function set strand(value:IStrand):void
 		{
 			_strand = value;
+			super.strand = value;
+			
+			// The content area will hold the views
+			_contentArea = new ManagedContentArea();
 			
 			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);
+			var tbar:TabBar = new TabBar();
+			tbar.dataProvider = model.views;
+			tbar.labelField = "title";
+			tbar.addEventListener("change",handleButtonBarChange);
+			tabBar = tbar;
+		}
+		
+		override protected function handleInitComplete(event:Event):void
+		{			
+			super.handleInitComplete(event);
 			
-			super.strand = value;
+			COMPILE::SWF {
+				_contentArea.percentWidth = 100;
+				_contentArea.percentHeight = 100;
+			}
+			UIBase(_strand).addElement(_contentArea);
+			
+			if (tabBar) {
+				UIBase(_strand).addElement(tabBar);
+			}
+			
+			performLayout(event);
+			
+			showViewByIndex(0);
+		}
+		
+		private var _currentView:IViewManagerView;
+		
+		protected function showViewByIndex(index:int):void
+		{
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			
+			if (_currentView != null) {
+				contentArea.removeElement(_currentView);
+			}
+			_currentView = model.views[index] as IViewManagerView;
+			contentArea.addElement(_currentView);
+			
+			COMPILE::JS {
+				if (_currentView) {
+					UIBase(_currentView).element.style["flex-grow"] = "1";
+				}
+			}
+		}
+		
+		override protected function layoutViewAfterContentLayout():void
+		{
+			super.layoutViewAfterContentLayout();
+			
+			COMPILE::SWF {
+				if (_currentView) {
+					UIBase(_currentView).width = contentArea.width;
+					UIBase(_currentView).height = contentArea.height;
+				}
+			}
 		}
 		
 		/**
@@ -82,58 +153,60 @@ package org.apache.flex.mobile.beads
 		 */		
 		private function handleButtonBarChange(event:Event):void
 		{
-			var newIndex:Number = _tabBar.selectedIndex;
+			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;
+			
+			showViewByIndex(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") );
-		}
+//		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/e0b3528a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
index f314fad..5599ad9 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
@@ -28,6 +28,7 @@ package org.apache.flex.mobile.beads
 	import org.apache.flex.events.Event;
 	import org.apache.flex.html.Container;
 	import org.apache.flex.html.beads.layouts.HorizontalLayout;
+	import org.apache.flex.html.beads.GroupView;
 	import org.apache.flex.mobile.IViewManagerView;
 	import org.apache.flex.mobile.chrome.NavigationBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
@@ -41,7 +42,7 @@ package org.apache.flex.mobile.beads
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class ViewManagerViewBase implements IBeadView
+	public class ViewManagerViewBase extends GroupView implements IBeadView
 	{
 		/**
 		 * Constructor.
@@ -56,23 +57,15 @@ package org.apache.flex.mobile.beads
 			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;
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			return model.navigationBar;
 		}
 		public function set navigationBar(value:NavigationBar):void
 		{
-			// not implemented; getter only.
+			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			model.navigationBar = value;
 		}
 		
 		private var _strand:IStrand;
@@ -80,22 +73,29 @@ package org.apache.flex.mobile.beads
 		{
 			return _strand;
 		}
-		public function set strand(value:IStrand):void
+		override public function set strand(value:IStrand):void
 		{
+			super.strand = value;
 			_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);
+				var navBar:NavigationBar = new NavigationBar();
+				navBar.controls = model.navigationBarItems;
+				navBar.addBead(new HorizontalLayout());
+				navigationBar = navBar;
+			}
+		}
+		
+		override protected function handleInitComplete(event:Event):void
+		{
+			super.handleInitComplete(event);
+			
+			if (navigationBar) {
+				UIBase(_strand).addElement(navigationBar);
 			}
 		}
 		
@@ -110,56 +110,57 @@ package org.apache.flex.mobile.beads
 		/**
 		 * @private
 		 */
-		protected function sizeChangedHandler(event:Event):void
-		{
-			layoutChromeElements();
-		}
+//		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();
+			performLayout(null);
+//			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:IViewManagerView = ViewManagerModel(model).views[i] as IViewManagerView;
-					UIBase(view).x = model.contentX;
-					UIBase(view).y = model.contentY;
-					UIBase(view).setWidthAndHeight(model.contentWidth, model.contentHeight, true);
-				}
-			}
+//			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:IViewManagerView = ViewManagerModel(model).views[i] as IViewManagerView;
+//					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/e0b3528a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml b/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
index e0f523d..ac85e14 100644
--- a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
@@ -23,6 +23,7 @@
     <component id="StackedViewManager" class="org.apache.flex.mobile.StackedViewManager" />
     <component id="TabbedViewManager" class="org.apache.flex.mobile.TabbedViewManager" />
     <component id="TitleView" class="org.apache.flex.mobile.TitleView" />
+    <component id="ManagedContentArea" class="org.apache.flex.mobile.ManagedContentArea" />
     <component id="NavigationBar" class="org.apache.flex.mobile.chrome.NavigationBar" />
     <component id="ToolBar" class="org.apache.flex.mobile.chrome.ToolBar" />
     <component id="TabBar" class="org.apache.flex.mobile.chrome.TabBar" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0b3528a/frameworks/projects/Mobile/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/defaults.css b/frameworks/projects/Mobile/src/main/resources/defaults.css
index ddf9229..405a3a5 100644
--- a/frameworks/projects/Mobile/src/main/resources/defaults.css
+++ b/frameworks/projects/Mobile/src/main/resources/defaults.css
@@ -20,16 +20,29 @@
 @namespace "library://ns.apache.org/flexjs/basic";
 @namespace svg "library://ns.apache.org/flexjs/svg";
 
+NavigationBar
+{
+	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalFlexLayout");
+}
+
 StackedViewManager 
 {
 	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
 	IBeadView:  ClassReference("org.apache.flex.mobile.beads.StackedViewManagerView");
+	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");
 }
 
 TabbedViewManager 
 {
 	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
 	IBeadView:  ClassReference("org.apache.flex.mobile.beads.TabbedViewManagerView");
+	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");
+}
+
+ManagedContentArea
+{
+	display: flex;
+	flex-grow: 1;
 }
 
 ToggleSwitch
@@ -63,3 +76,11 @@ DatePicker {
 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModelExtended");
 	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.RangeStepperMouseController");
 }
+
+@media -flex-flash
+{
+	NavigationBar {
+		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
+		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
+	}
+}


[40/43] git commit: [flex-asjs] [refs/heads/dual] - Merge branch 'develop' into dual

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
index cad6827,0000000..6fb927d
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
@@@ -1,264 -1,0 +1,265 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  Licensed to the Apache Software Foundation (ASF) under one or more
 +//  contributor license agreements.  See the NOTICE file distributed with
 +//  this work for additional information regarding copyright ownership.
 +//  The ASF licenses this file to You under the Apache License, Version 2.0
 +//  (the "License"); you may not use this file except in compliance with
 +//  the License.  You may obtain a copy of the License at
 +//
 +//      http://www.apache.org/licenses/LICENSE-2.0
 +//
 +//  Unless required by applicable law or agreed to in writing, software
 +//  distributed under the License is distributed on an "AS IS" BASIS,
 +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +//  See the License for the specific language governing permissions and
 +//  limitations under the License.
 +//
 +////////////////////////////////////////////////////////////////////////////////
 +package org.apache.flex.html.beads.layouts
 +{
 +//	import org.apache.flex.html.beads.layouts.HorizontalLayout;
 +
 +	import org.apache.flex.core.LayoutBase;
 +	import org.apache.flex.core.ILayoutChild;
 +	import org.apache.flex.core.ILayoutHost;
 +	import org.apache.flex.core.ILayoutView;
 +	import org.apache.flex.core.ILayoutParent;
 +	import org.apache.flex.core.IStrand;
 +	import org.apache.flex.core.IParentIUIBase;
 +	import org.apache.flex.core.UIBase;
 +
 +	COMPILE::SWF {
 +		import org.apache.flex.core.IUIBase;
 +		import org.apache.flex.core.ValuesManager;
 +		import org.apache.flex.events.Event;
 +		import org.apache.flex.events.IEventDispatcher;
 +		import org.apache.flex.geom.Rectangle;
 +		import org.apache.flex.utils.CSSUtils;
 +		import org.apache.flex.utils.CSSContainerUtils;
 +	}
 +
 +	public class HorizontalFlexLayout extends LayoutBase
 +	{
 +		/**
 +		 * Constructor.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function HorizontalFlexLayout()
 +		{
 +			super();
 +		}
 +
 +		private var _grow:Number = -1;
 +
 +		/**
 +		 * Sets the amount items grow in proportion to other items.
 +		 * The default is 0 which prevents the items from expanding to
 +		 * fit the space. Use a negative value to unset this property.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get grow():Number {
 +			return _grow;
 +		}
 +		public function set grow(value:Number):void {
 +			_grow = value;
 +		}
 +
 +		private var _shrink:Number = -1;
 +
 +		/**
 +		 * Sets the amount an item may shrink in proportion to other items.
 +		 * The default is 1 which allows items to shrink to fit into the space.
 +		 * Set this to 0 if you want to allow scrolling of the space. Use a
 +		 * negative value to unset this property.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get shrink():Number {
 +			return _shrink;
 +		}
 +		public function set shrink(value:Number):void {
 +			_shrink = value;
 +		}
 +
 +		/**
 +		 * @copy org.apache.flex.core.IBeadLayout#layout
 +		 * @flexjsignorecoercion org.apache.flex.core.ILayoutHost
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		override public function layout():Boolean
 +		{
 +			COMPILE::SWF {
 +				var contentView:ILayoutView = layoutView;
 +
 +				var n:Number = contentView.numElements;
 +				if (n == 0) return false;
 +
 +				var spacing:String = "none";
 +
 +				var maxWidth:Number = 0;
 +				var maxHeight:Number = 0;
 +				var growCount:Number = 0;
 +				var childData:Array = [];
 +				var hostWidthSizedToContent:Boolean = host.isWidthSizedToContent();
 +				var hostHeightSizedToContent:Boolean = host.isHeightSizedToContent();
 +				var hostWidth:Number = hostWidthSizedToContent ? host.width : contentView.width;
 +				var hostHeight:Number = hostHeightSizedToContent ? host.height : contentView.height;
 +
 +				var ilc:ILayoutChild;
 +				var data:Object;
 +				var canAdjust:Boolean = false;
 +				
 +				var paddingMetrics:Rectangle = CSSContainerUtils.getPaddingMetrics(host);
 +				var borderMetrics:Rectangle = CSSContainerUtils.getBorderMetrics(host);
 +				
 +				// adjust the host's usable size by the metrics. If hostSizedToContent, then the
 +				// resulting adjusted value may be less than zero.
 +				hostWidth -= paddingMetrics.left + paddingMetrics.right + borderMetrics.left + borderMetrics.right;
 +				hostHeight -= paddingMetrics.top + paddingMetrics.bottom + borderMetrics.top + borderMetrics.bottom;
 +				
 +				if ((hostWidth <= 0 && !hostWidthSizedToContent) || (hostHeight <= 0 && !hostHeightSizedToContent)) return false;
 +				
 +				var remainingWidth:Number = hostWidth;
 +
 +				//trace("HorizontalFlexLayout for "+UIBase(host).id+" with remainingWidth: "+remainingWidth);
 +
 +				// First pass determines the data about the child.
 +				for(var i:int=0; i < n; i++)
 +				{
 +					var child:IUIBase = contentView.getElementAt(i) as IUIBase;
 +					if (child == null || !child.visible) {
 +						childData.push({width:0, height:0, mt:0, ml:0, mr:0, mb:0, canAdjust:false});
 +						continue;
 +					}
 +
 +					ilc = child as ILayoutChild;
 +					
 +					var margins:Object = childMargins(child, hostWidth, hostHeight);
 +
 +					var flexGrow:Object = ValuesManager.valuesImpl.getValue(child, "flex-grow");
 +					var growValue:Number = 0;
 +					if (flexGrow != null) {
 +						growValue = Number(flexGrow);
 +						if (!isNaN(growValue) && growValue > 0) growCount++;
 +						else growValue = 0;
 +					}
 +
 +					var useHeight:Number = -1;
 +					if (!hostHeightSizedToContent) {
 +						if (ilc) {
 +							if (!isNaN(ilc.percentHeight)) useHeight = hostHeight * (ilc.percentHeight/100.0);
 +							else if (!isNaN(ilc.explicitHeight)) useHeight = ilc.explicitHeight;
 +							else useHeight = hostHeight;
 +						}
 +					}
 +
 +					var useWidth:Number = -1;
 +					if (ilc) {
 +						if (!isNaN(ilc.explicitWidth)) useWidth = ilc.explicitWidth;
 +						else if (!isNaN(ilc.percentWidth)) useWidth = hostWidth * (ilc.percentWidth/100.0);
 +						else if (ilc.width > 0) useWidth = ilc.width;
 +					}
 +					if (growValue == 0 && useWidth > 0) remainingWidth -= useWidth + margins.left + margins.right;
 +					else remainingWidth -= margins.left + margins.right;
 +
 +					if (maxWidth < useWidth) maxWidth = useWidth;
 +					if (maxHeight < useHeight) maxHeight = useHeight;
 +
 +					childData.push({width:useWidth, height:useHeight, 
 +						            mt:margins.top, ml:margins.left, mr:margins.right, mb:margins.bottom, 
 +									grow:growValue, canAdjust:canAdjust});
 +				}
 +
 +				var xpos:Number = borderMetrics.left + paddingMetrics.left;
 +				var ypos:Number = borderMetrics.top + paddingMetrics.top;
 +
 +				// Second pass sizes and positions the children based on the data gathered.
 +				for(i=0; i < n; i++)
 +				{
 +					child = contentView.getElementAt(i) as IUIBase;
 +					data = childData[i];
 +					//if (data.width == 0 || data.height == 0) continue;
 +
 +					useHeight = (data.height < 0 ? maxHeight : data.height);
 +
 +					var setWidth:Boolean = true;
 +					if (data.width != 0) {
 +						if (data.grow > 0 && growCount > 0) {
 +							useWidth = remainingWidth / growCount;
 +							setWidth = false;
 +						} else {
 +							useWidth = data.width;
 +						}
 +					} else {
 +						useWidth = child.width;
 +					}
 +
 +					ilc = child as ILayoutChild;
 +					if (ilc) {
 +						ilc.setX(xpos + data.ml);
 +						ilc.setY(ypos + data.mt);
 +						if (data.height > 0) {
 +							//ilc.height = useHeight;
 +							ilc.setHeight(useHeight);
 +						}
 +						if (useWidth > 0) {
 +							if (setWidth) ilc.setWidth(useWidth);
 +							else ilc.width = useWidth;
 +						}
 +					} else {
 +						child.x = xpos + data.ml;
 +						child.y = ypos + data.mt;
 +						child.height = useHeight;
 +						if (data.width > 0) {
 +							child.width = useWidth;
 +						}
 +					}
 +
 +					xpos += useWidth + data.mr + data.ml;
 +
 +					//trace("HorizontalFlexLayout: setting child "+i+" to "+child.width+" x "+child.height+" at "+child.x+", "+child.y);
 +				}
 +
 +				//trace("HorizontalFlexLayout: complete");
 +
 +				return true;
 +			}
 +
 +			COMPILE::JS {
 +				var contentView:ILayoutView = layoutView;
 +
 +				// set the display on the contentView
 +				contentView.element.style["display"] = "flex";
 +				contentView.element.style["flex-flow"] = "row";
 +
 +				var n:int = contentView.numElements;
 +				if (n == 0) return false;
 +
 +				for(var i:int=0; i < n; i++) {
 +					var child:UIBase = contentView.getElementAt(i) as UIBase;
 +					if (grow >= 0) child.element.style["flex-grow"] = String(grow);
 +					if (shrink >= 0) child.element.style["flex-shrink"] = String(shrink);
++					child.dispatchEvent(new Event("layoutNeeded"));
 +				}
 +
 +				return true;
 +			}
 +		}
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
index f495acc,0000000..c543425
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
@@@ -1,260 -1,0 +1,261 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  Licensed to the Apache Software Foundation (ASF) under one or more
 +//  contributor license agreements.  See the NOTICE file distributed with
 +//  this work for additional information regarding copyright ownership.
 +//  The ASF licenses this file to You under the Apache License, Version 2.0
 +//  (the "License"); you may not use this file except in compliance with
 +//  the License.  You may obtain a copy of the License at
 +//
 +//      http://www.apache.org/licenses/LICENSE-2.0
 +//
 +//  Unless required by applicable law or agreed to in writing, software
 +//  distributed under the License is distributed on an "AS IS" BASIS,
 +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +//  See the License for the specific language governing permissions and
 +//  limitations under the License.
 +//
 +////////////////////////////////////////////////////////////////////////////////
 +package org.apache.flex.html.beads.layouts
 +{
 +	//import org.apache.flex.html.beads.layouts.VerticalLayout;
 +
 +	import org.apache.flex.core.LayoutBase;
 +	import org.apache.flex.core.ILayoutChild;
 +	import org.apache.flex.core.ILayoutHost;
 +	import org.apache.flex.core.ILayoutView;
 +	import org.apache.flex.core.ILayoutParent;
 +	import org.apache.flex.core.IStrand;
 +	import org.apache.flex.core.UIBase;
 +	import org.apache.flex.core.IParentIUIBase;
 +
 +	COMPILE::SWF {
 +		import org.apache.flex.core.IUIBase;
 +		import org.apache.flex.core.ValuesManager;
 +		import org.apache.flex.events.Event;
 +		import org.apache.flex.events.IEventDispatcher;
 +		import org.apache.flex.geom.Rectangle;
 +		import org.apache.flex.utils.CSSUtils;
 +		import org.apache.flex.utils.CSSContainerUtils;
 +	}
 +
 +	public class VerticalFlexLayout extends LayoutBase
 +	{
 +		/**
 +		 * Constructor.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function VerticalFlexLayout()
 +		{
 +			super();
 +		}
 +
 +		private var _grow:Number = -1;
 +
 +		/**
 +		 * Sets the amount items grow in proportion to other items.
 +		 * The default is 0 which prevents the items from expanding to
 +		 * fit the space. Use a negative value to unset this property.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get grow():Number {
 +			return _grow;
 +		}
 +		public function set grow(value:Number):void {
 +			_grow = value;
 +		}
 +
 +		private var _shrink:Number = -1;
 +
 +		/**
 +		 * Sets the amount an item may shrink in proportion to other items.
 +		 * The default is 1 which allows items to shrink to fit into the space.
 +		 * Set this to 0 if you want to allow scrolling of the space. Use a negative
 +		 * value to unset this property.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get shrink():Number {
 +			return _shrink;
 +		}
 +		public function set shrink(value:Number):void {
 +			_shrink = value;
 +		}
 +
 +		/**
 +		 *
 +		 *  @flexjsignorecoercion org.apache.flex.core.ILayoutHost
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		override public function layout():Boolean
 +		{
 +			COMPILE::SWF {
 +				var contentView:ILayoutView = layoutView;
 +
 +				var n:Number = contentView.numElements;
 +				if (n == 0) return false;
 +
 +				var spacing:String = "none";
 +
 +				var maxWidth:Number = 0;
 +				var maxHeight:Number = 0;
 +				var growCount:Number = 0;
 +				var childData:Array = [];
 +				var hostWidthSizedToContent:Boolean = host.isWidthSizedToContent();
 +				var hostHeightSizedToContent:Boolean = host.isHeightSizedToContent();
 +				var hostWidth:Number = hostWidthSizedToContent ? host.width : contentView.width;
 +				var hostHeight:Number = hostHeightSizedToContent ? host.height : contentView.height;
 +
 +				var ilc:ILayoutChild;
 +				var data:Object;
 +				var canAdjust:Boolean = false;
 +				
 +				var paddingMetrics:Rectangle = CSSContainerUtils.getPaddingMetrics(host);
 +				var borderMetrics:Rectangle = CSSContainerUtils.getBorderMetrics(host);
 +				
 +				// adjust the host's usable size by the metrics. If hostSizedToContent, then the
 +				// resulting adjusted value may be less than zero.
 +				hostWidth -= paddingMetrics.left + paddingMetrics.right + borderMetrics.left + borderMetrics.right;
 +				hostHeight -= paddingMetrics.top + paddingMetrics.bottom + borderMetrics.top + borderMetrics.bottom;
 +				
 +				var remainingHeight:Number = hostHeight;
 +
 +				//trace("VerticalFlexLayout for "+UIBase(host).id+" with remainingHeight: "+remainingHeight);
 +
 +				// First pass determines the data about the child.
 +				for(var i:int=0; i < n; i++)
 +				{
 +					var child:IUIBase = contentView.getElementAt(i) as IUIBase;
 +					if (child == null || !child.visible) {
 +						childData.push({width:0, height:0, mt:0, ml:0, mr:0, mb:0, grow:0, canAdjust:false});
 +						continue;
 +					}
 +
 +					ilc = child as ILayoutChild;
 +					
 +					var margins:Object = childMargins(child, hostWidth, hostHeight);
 +
 +					var flexGrow:Object = ValuesManager.valuesImpl.getValue(child, "flex-grow");
 +					var growValue:Number = 0;
 +					if (flexGrow != null) {
 +						growValue = Number(flexGrow);
 +						if (!isNaN(growValue) && growValue > 0) growCount++;
 +						else growValue = 0;
 +					}
 +
 +					var useWidth:Number = -1;
 +					if (!hostWidthSizedToContent) {
 +						if (ilc) {
 +							if (!isNaN(ilc.percentWidth)) useWidth = hostWidth * (ilc.percentWidth/100.0);
 +							else if (!isNaN(ilc.explicitWidth)) useWidth = ilc.explicitWidth;
 +							else useWidth = hostWidth;
 +						}
 +					}
 +
 +					var useHeight:Number = -1;
 +					if (ilc) {
 +						if (!isNaN(ilc.explicitHeight)) useHeight = ilc.explicitHeight;
 +						else if (!isNaN(ilc.percentHeight)) useHeight = hostHeight * (ilc.percentHeight/100.0);
 +						else if (ilc.height > 0) useHeight = ilc.height;
 +					}
 +					if (growValue == 0 && useHeight > 0) remainingHeight -= useHeight + margins.top + margins.bottom;
 +					else remainingHeight -= margins.top + margins.bottom;
 +
 +					if (maxWidth < useWidth) maxWidth = useWidth;
 +					if (maxHeight < useHeight) maxHeight = useHeight;
 +
 +					childData.push({width:useWidth, height:useHeight, 
 +						            mt:margins.top, ml:margins.left, mr:margins.right, mb:margins.bottom, 
 +									grow:growValue, canAdjust:canAdjust});
 +				}
 +
 +				var xpos:Number = borderMetrics.left + paddingMetrics.left;
 +				var ypos:Number = borderMetrics.top + paddingMetrics.top;
 +
 +				// Second pass sizes and positions the children based on the data gathered.
 +				for(i=0; i < n; i++)
 +				{
 +					child = contentView.getElementAt(i) as IUIBase;
 +					data = childData[i];
 +
 +					useWidth = (data.width < 0 ? hostWidth : data.width);
 +
 +					var setHeight:Boolean = true;
 +					if (data.height != 0) {
 +						if (data.grow > 0 && growCount > 0) {
 +							useHeight = remainingHeight / growCount;
 +							setHeight = false;
 +						} else {
 +							useHeight = data.height;
 +						}
 +					} else {
 +						useHeight = child.height;
 +					}
 +
 +					ilc = child as ILayoutChild;
 +					if (ilc) {
 +						ilc.setX(xpos + data.ml);
 +						ilc.setY(ypos + data.mt);
 +						if (data.width > 0) {
 +							//ilc.width = useWidth;
 +							ilc.setWidth(useWidth);
 +						}
 +						if (useHeight > 0) {
 +							if (setHeight) ilc.setHeight(useHeight);
 +							else ilc.height = useHeight;
 +						}
 +					} else {
 +						child.x = xpos + data.ml;
 +						child.y = ypos + data.mt;
 +						child.width = useWidth;
 +						if (useHeight > 0) {
 +							child.height = useHeight;
 +						}
 +					}
 +
 +					ypos += useHeight + data.mt + data.mb;
 +
 +					//trace("VerticalFlexLayout: setting child "+i+" to "+child.width+" x "+child.height+" at "+child.x+", "+child.y);
 +				}
 +
 +				//trace("VerticalFlexLayout: complete");
 +
 +				return true;
 +			}
 +
 +			COMPILE::JS {
 +				var contentView:ILayoutView = layoutView;
 +
 +				contentView.element.style["display"] = "flex";
 +				contentView.element.style["flex-flow"] = "column";
 +
 +				var n:int = contentView.numElements;
 +				if (n == 0) return false;
 +
 +				for(var i:int=0; i < n; i++) {
 +					var child:UIBase = contentView.getElementAt(i) as UIBase;
 +					if (grow >= 0) child.element.style["flex-grow"] = String(grow);
 +					if (shrink >= 0) child.element.style["flex-shrink"] = String(shrink);
++					child.dispatchEvent(new Event("layoutNeeded"));
 +				}
 +
 +				return true;
 +			}
 +		}
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
index de1b304,0000000..d9b130e
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
@@@ -1,84 -1,0 +1,94 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  Licensed to the Apache Software Foundation (ASF) under one or more
 +//  contributor license agreements.  See the NOTICE file distributed with
 +//  this work for additional information regarding copyright ownership.
 +//  The ASF licenses this file to You under the Apache License, Version 2.0
 +//  (the "License"); you may not use this file except in compliance with
 +//  the License.  You may obtain a copy of the License at
 +//
 +//      http://www.apache.org/licenses/LICENSE-2.0
 +//
 +//  Unless required by applicable law or agreed to in writing, software
 +//  distributed under the License is distributed on an "AS IS" BASIS,
 +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +//  See the License for the specific language governing permissions and
 +//  limitations under the License.
 +//
 +////////////////////////////////////////////////////////////////////////////////
 +package org.apache.flex.html.supportClasses
 +{
 +	import org.apache.flex.core.ILayoutHost;
 +	import org.apache.flex.core.ILayoutParent;
 +	import org.apache.flex.core.ILayoutView;
 +	import org.apache.flex.core.IStrand;
 +	import org.apache.flex.core.IBead;
 +	import org.apache.flex.core.IBeadLayout;
 +	import org.apache.flex.core.IParentIUIBase;
 +    import org.apache.flex.events.Event;
 +
 +	/**
 +	 *  The MXMLItemRenderer class is the base class for itemRenderers that are MXML-based
 +	 *  and provides support for a layout and a data object.
 +	 *
 +	 *  @langversion 3.0
 +	 *  @playerversion Flash 10.2
 +	 *  @playerversion AIR 2.6
 +	 *  @productversion FlexJS 0.0
 +	 */
 +	public class MXMLItemRenderer extends DataItemRenderer implements ILayoutParent, ILayoutHost, IStrand, ILayoutView
 +	{
 +		/**
 +		 *  constructor.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.0
 +		 */
 +		public function MXMLItemRenderer()
 +		{
 +			super();
 +		}
 +
 +        [Bindable("dataChange")]
 +        override public function set data(value:Object):void
 +        {
 +            if (value != data)
 +            {
 +                super.data = value;
 +                dispatchEvent(new Event("dataChange"));
 +            }
 +        }
 +
 +		public function getLayoutHost():ILayoutHost
 +		{
 +			return this;
 +		}
 +
 +		public function get contentView():ILayoutView
 +		{
 +			return this;
 +		}
 +
 +		override public function adjustSize():void
 +		{
 +			var layout:IBeadLayout = getBeadByType(IBeadLayout) as IBeadLayout;
 +			if (layout != null) {
 +				layout.layout();
 +			}
 +		}
++		
++		public function beforeLayout():void
++		{
++			
++		}
++		
++		public function afterLayout():void
++		{
++			
++		}
 +
 +
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as
index 0000000,0000000..049fe9b
new file mode 100644
--- /dev/null
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as
@@@ -1,0 -1,0 +1,244 @@@
++////////////////////////////////////////////////////////////////////////////////
++//
++//  Licensed to the Apache Software Foundation (ASF) under one or more
++//  contributor license agreements.  See the NOTICE file distributed with
++//  this work for additional information regarding copyright ownership.
++//  The ASF licenses this file to You under the Apache License, Version 2.0
++//  (the "License"); you may not use this file except in compliance with
++//  the License.  You may obtain a copy of the License at
++//
++//      http://www.apache.org/licenses/LICENSE-2.0
++//
++//  Unless required by applicable law or agreed to in writing, software
++//  distributed under the License is distributed on an "AS IS" BASIS,
++//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++//  See the License for the specific language governing permissions and
++//  limitations under the License.
++//
++////////////////////////////////////////////////////////////////////////////////
++package org.apache.flex.html.supportClasses
++{
++	import org.apache.flex.core.IItemRenderer;
++	import org.apache.flex.core.IItemRendererParent;
++	import org.apache.flex.core.UIBase;
++	import org.apache.flex.core.SimpleCSSStyles;
++	import org.apache.flex.events.Event;
++	import org.apache.flex.events.MouseEvent;
++	import org.apache.flex.html.TextButton;
++	import org.apache.flex.html.beads.ITextItemRenderer;
++	import org.apache.flex.events.ItemClickedEvent;
++	
++	COMPILE::JS
++	{
++		import org.apache.flex.core.WrappedHTMLElement;            
++	}
++	
++	/**
++	 * The TextButtonItemRenderer class extends TextButton and turns it into an itemRenderer
++	 * suitable for use in most DataContainer/List/DataGrid applications.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++	 */
++	public class TextButtonItemRenderer extends TextButton implements ITextItemRenderer
++	{
++		public function TextButtonItemRenderer()
++		{
++			super();
++			
++			style = new SimpleCSSStyles();
++			
++			addEventListener('click',handleClickEvent);
++		}
++		
++		private var _data:Object;
++		
++		/**
++		 *  The data to be displayed as the text value. Use this in conjunction with
++		 *  the labelField property to select an item from the dataProvider record to use
++		 *  as the text value of the button.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get data():Object
++		{
++			return _data;
++		}
++		public function set data(value:Object):void
++		{
++			_data = value;
++			
++			var valueAsString:String;
++			
++			if (value is String) {
++				valueAsString = value as String;
++			}
++			else if (value.hasOwnProperty("label")) {
++				valueAsString = String(value["label"]);
++			}
++			else if (value.hasOwnProperty("title")) {
++				valueAsString = String(value["title"]);
++			}
++			
++			if (valueAsString) text = valueAsString;
++		}
++		
++		/**
++		 * @private
++		 */
++		protected function handleClickEvent(event:MouseEvent):void
++		{
++			var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
++			newEvent.multipleSelection = event.shiftKey;
++			newEvent.index = index;
++			newEvent.data = data;
++			dispatchEvent(newEvent);
++		}
++		
++		/*
++		 * IItemRenderer, ISelectableItemRenderer
++		 */
++		
++		private var _itemRendererParent:Object;
++		
++		/**
++		 * The parent container for the itemRenderer instance.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get itemRendererParent():Object
++		{
++			return _itemRendererParent;
++		}
++		public function set itemRendererParent(value:Object):void
++		{
++			_itemRendererParent = value;
++		}
++		
++		private var _labelField:String = "label";
++		
++		/**
++		 * The name of the field within the data to use as a label. Some itemRenderers use this field to
++		 * identify the value they should show while other itemRenderers ignore this if they are showing
++		 * complex information.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get labelField():String
++		{
++			return _labelField;
++		}
++		public function set labelField(value:String):void
++		{
++			_labelField = value;
++		}
++		
++		private var _listData:Object;
++		
++		[Bindable("__NoChangeEvent__")]
++		/**
++		 *  Additional data about the list structure the itemRenderer may
++		 *  find useful.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get listData():Object
++		{
++			return _listData;
++		}
++		public function set listData(value:Object):void
++		{
++			_listData = value;
++		}
++		
++		private var _index:int;
++		
++		/**
++		 *  The position with the dataProvider being shown by the itemRenderer instance.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get index():int
++		{
++			return _index;
++		}
++		public function set index(value:int):void
++		{
++			_index = value;
++		}
++		
++		private var _hovered:Boolean;
++		
++		/**
++		 *  Whether or not the itemRenderer is in a hovered state.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get hovered():Boolean
++		{
++			return _hovered;
++		}
++		public function set hovered(value:Boolean):void
++		{
++			_hovered = value;
++		}
++		
++		private var _selected:Boolean;
++		
++		/**
++		 *  Whether or not the itemRenderer is in a selected state.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get selected():Boolean
++		{
++			return _selected;
++		}
++		public function set selected(value:Boolean):void
++		{
++			_selected = value;
++		}
++		
++		private var _down:Boolean;
++		
++		/**
++		 *  Whether or not the itemRenderer is in a down (or pre-selected) state.
++		 *
++		 *  @langversion 3.0
++		 *  @playerversion Flash 10.2
++		 *  @playerversion AIR 2.6
++		 *  @productversion FlexJS 0.8
++		 */
++		public function get down():Boolean
++		{
++			return _down;
++		}
++		public function set down(value:Boolean):void
++		{
++			_down = value;
++		}
++	}
++}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/resources/basic-manifest.xml
index 7dbe764,072aed9..d57c592
--- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
@@@ -81,20 -70,13 +81,20 @@@
      <component id="Slider" class="org.apache.flex.html.Slider"/>
      <component id="NumericStepper" class="org.apache.flex.html.NumericStepper" />
      <component id="StringItemRenderer" class="org.apache.flex.html.supportClasses.StringItemRenderer"/>
 +    <component id="AccordionItemRenderer" class="org.apache.flex.html.supportClasses.AccordionItemRenderer"/>
 +    <component id="AccordionCollapseBead" class="org.apache.flex.html.beads.AccordionCollapseBead"/>
 +    <component id="DispatchInputFinishedBead" class="org.apache.flex.html.beads.DispatchInputFinishedBead"/>
 +    <component id="DispatchKeyboardEventBead" class="org.apache.flex.html.beads.DispatchKeyboardEventBead"/>
      <component id="TreeItemRenderer" class="org.apache.flex.html.supportClasses.TreeItemRenderer"/>
      <component id="DataItemRenderer" class="org.apache.flex.html.supportClasses.DataItemRenderer"/>
 -    <component id="ButtonBarButtonItemRenderer" class="org.apache.flex.html.supportClasses.ButtonBarButtonItemRenderer"/>
 +    <component id="MXMLItemRenderer" class="org.apache.flex.html.supportClasses.MXMLItemRenderer"/>
-     <component id="ButtonBarButtonItemRenderer" class="org.apache.flex.html.supportClasses.ButtonBarButtonItemRenderer"/>
 +    <component id="DateItemRenderer" class="org.apache.flex.html.supportClasses.DateItemRenderer"/>
 +    <component id="DayNameItemRenderer" class="org.apache.flex.html.supportClasses.DayNameItemRenderer"/>
++    <component id="TextButtonItemRenderer" class="org.apache.flex.html.supportClasses.TextButtonItemRenderer"/>
      <!--
       <component id="TextFieldItemRenderer" class="org.apache.flex.html.supportClasses.TextFieldItemRenderer"/>
 -    <component id="HScrollBar" class="org.apache.flex.html.supportClasses.HScrollBar"/>
 -    <component id="VScrollBar" class="org.apache.flex.html.supportClasses.VScrollBar"/>
 +     <component id="HScrollBar" class="org.apache.flex.html.supportClasses.HScrollBar"/>
 +     <component id="VScrollBar" class="org.apache.flex.html.supportClasses.VScrollBar"/>
       <component id="HRuleView" class="org.apache.flex.html.beads.HRuleView" />
       <component id="VRuleView" class="org.apache.flex.html.beads.VRuleView" />
       -->

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/resources/defaults.css
index 9ecea43,5ce20fb..02a5bdb
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@@ -23,60 -23,26 +23,37 @@@
  /* Global style declaration */
  *
  {
--    font-family: "Arial";
--    font-size: 12px;
++	font-family: "Arial";
++	font-size: 12px;
  	border-width: 1px;
  }
  
  .flexjs *, . flexjs *:before, . flexjs *:after {
--    -moz-box-sizing: border-box;
--    -webkit-box-sizing: border-box;
--    box-sizing: border-box;
++	-moz-box-sizing: border-box;
++	-webkit-box-sizing: border-box;
++	box-sizing: border-box;
  }
  
- Accordion
- {
- 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
- 	IBeadView:  ClassReference("org.apache.flex.html.beads.AccordionView");			
- 	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
- 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayout");
- 	IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
- 	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
- 	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
- 	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.AccordionItemRenderer");
- 	IViewport: ClassReference("org.apache.flex.html.supportClasses.ClippingViewport");
- 	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
- 	IAccordionCollapseBead: ClassReference("org.apache.flex.html.beads.AccordionCollapseBead");
- 	border-style: solid;
- 	border-color: #222222;
- }
- 
- AccordionItemRenderer
+ .unselectable
  {
- 	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.AccordionItemRendererMouseController");
- 	IBeadView: ClassReference("org.apache.flex.html.beads.AccordionItemRendererView");
 -    -moz-user-select: -moz-none;
 -    -khtml-user-select: none;
 -    -webkit-user-select: none;
 -    -o-user-select: none;
 -    user-select: none;
++	-moz-user-select: -moz-none;
++	-khtml-user-select: none;
++	-webkit-user-select: none;
++	-o-user-select: none;
++	user-select: none;
  }
  
 +Alert
 +{
-     IBeadModel: ClassReference("org.apache.flex.html.beads.models.AlertModel");
-        
-     background-color: #FFFFFF;
-     border-style: solid;
-     border-color: #000000;
-     border-width: 1px;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.AlertModel");
++	
++	background-color: #FFFFFF;
++	border-style: solid;
++	border-color: #000000;
++	border-width: 1px;
 +}
 +
 +
- .unselectable
- {
-     -moz-user-select: -moz-none;
-     -khtml-user-select: none;
-     -webkit-user-select: none;
-     -o-user-select: none;
-     user-select: none;
- }
- 
  Application
  {
  	padding: 0px;
@@@ -85,118 -51,77 +62,113 @@@
  
  Button
  {
--  background-color: #f8f8f8;
--  border: 1px solid #808080;
--  border-radius: 2px;
--  padding: 4px;
--  margin: 0px;
++	background-color: #f8f8f8;
++	border: 1px solid #808080;
++	border-radius: 2px;
++	padding: 4px;
++	margin: 0px;
  }
  
  Button:hover
  {
--  background-color: #e8e8e8;
--  border: 1px solid #808080;
--  padding: 4px;
++	background-color: #e8e8e8;
++	border: 1px solid #808080;
++	padding: 4px;
  }
  
  Button:active
  {
--  background-color: #d8d8d8;
--  border: 1px solid #808080;
--  padding: 4px;
++	background-color: #d8d8d8;
++	border: 1px solid #808080;
++	padding: 4px;
  }
  
  ButtonBar
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.ButtonBarView");			
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.ButtonBarLayout");
--    IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
--    IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
--    IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
--    IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.ButtonBarButtonItemRenderer");
- 
-     border-style: none;
- }
- 
- ButtonBarButtonItemRenderer
- {
-     width: 80;
-     height: 30;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ButtonBarModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.ButtonBarView");			
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.ButtonBarLayout");
++	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
++	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.TextButtonItemRenderer");
++	
++	border-style: none;
 +}
  
 -    border-style: none;
 +ComboBox
 +{
-     IBeadModel: ClassReference("org.apache.flex.html.beads.models.ComboBoxModel");
-     IBeadView: ClassReference("org.apache.flex.html.beads.ComboBoxView");
-     IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ComboBoxController");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ComboBoxModel");
++	IBeadView: ClassReference("org.apache.flex.html.beads.ComboBoxView");
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ComboBoxController");
 +	IPopUp: ClassReference("org.apache.flex.html.supportClasses.ComboBoxList");
  }
  
 -ButtonBarButtonItemRenderer
 +ComboBoxList
  {
 -    width: 80;
 -    height: 30;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
 +	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
 +	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
 +	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
++	IViewport: ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport");
++	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
 +	border-style: solid;
 +	border-radius: 4px;
 +	border-color: #000000;
 +	border-width: 1px;
 +	background-color: #FFFFFF;
 +}
 +
 +.ComboBoxButton {
 +	padding: 0px;
 +	margin: 0px;
  }
  
  Container
  {
--    IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
--    IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
++	IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
  	IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
  	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
  }
  
  ControlBar
  {
--	IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
--	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout");
++	IBeadView: ClassReference("org.apache.flex.html.beads.GroupView");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalFlexLayout");
  	
--    background-color: #CECECE;
--	border-style: none;
--    /*border-style: solid;
--    border-color: #000000;
--    border-width: 1px;*/
++	padding: 2px;
++	background-color: #E2E2E2;
++	border-top: solid 1px #333333;
++	height: 30px;
 +}
 +
 +DataContainer
 +{
 +	IBeadModel: ClassReference("org.apache.flex.html.beads.models.DataProviderModel");
 +	IBeadView:  ClassReference("org.apache.flex.html.beads.DataContainerView");			
 +	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
- 	IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
 +	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
 +	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
 +	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
 +	IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
 +	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
 +	border-style: solid;
 +	border-color: #222222;
  }
  
- 
  /* ASJS */
  DataGrid
  {
--    IDataGridPresentationModel: ClassReference("org.apache.flex.html.beads.models.DataGridPresentationModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.DataGridView");
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.DataGridModel");
--	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.DataGridLayout");
--
--    background-color: #FFFFFF;
++	IDataGridPresentationModel: ClassReference("org.apache.flex.html.beads.models.DataGridPresentationModel");
++	IBeadView: ClassReference("org.apache.flex.html.beads.DataGridView");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.DataGridModel");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");
++	
++	background-color: #FFFFFF;
  	border-style: solid;
  	border-color: #222222;
  	border-width: 1px;
@@@ -204,14 -129,14 +176,13 @@@
  
  DataGridButtonBar
  {
--	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ButtonBarModel");
  	IBeadView:  ClassReference("org.apache.flex.html.beads.ButtonBarView");			
  	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
  	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.ButtonBarLayout");
--	IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
  	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
  	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
--	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DataGridButtonBarButtonItemRenderer");
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.TextButtonItemRenderer");
  	
  	border-style: none;
  }
@@@ -221,7 -146,7 +192,6 @@@ DataGridColumnList 
  	IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
  	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
  	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
--	IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
  	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayList");
  	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
  	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
@@@ -233,61 -158,25 +203,72 @@@
  
  .DataGridListArea {
  	background-color: #FFFFFF;
--	border-style: solid;
--	border-color: #333333;
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
++	IViewport: ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport");
++	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
  }
  
 +/* DateChooser */
 +
  DateChooser {
--    IBeadView:   ClassReference("org.apache.flex.html.beads.DateChooserView");
--    IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateChooserMouseController");
--    width:  280px;
-     height: 230px;
 -    height: 240px;
++	IBeadView:   ClassReference("org.apache.flex.html.beads.DateChooserView");
++	IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");			
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");	
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateChooserMouseController");
++	width:  280px;
++	height: 240px;
 +}
 +
 +DateChooserList {
-     IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
++	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
 +	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
-     IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DataItemRenderer");
-     border-style: solid;
-     border-radius: 4px;
-     border-color: #000000;
-     border-width: 1px;
-     background-color: #FFFFFF;
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DateItemRenderer");		
++	border-style: solid;
++	border-color: #000000;
++	border-width: 1px;
++	background-color: #FFFFFF;
++}
++
++DateChooserHeader {	
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DayNameItemRenderer");
++	height: 20px;
++	border-style: solid;
++	border-color: #000000;
++	border-width: 1px;
++	background-color: #FFFFFF;
 +}
 +
- DateChooserHeader {    
-     IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DayNameItemRenderer");               
-     border-style: solid;
-     border-color: #000000;
-     border-width: 1px;
-     background-color: #FFFFFF;
++.DateChooserMonthButtons {				
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalFlexLayout");	
++	height: 20px;
 +}
 +
 +DateItemRenderer
 +{
-     IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
-     text-align: center;
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
++	text-align: center;
++	flex-shrink: 0;
++	flex-grow: 1;
 +}
 +
 +DayNameItemRenderer
 +{
-     text-align: center;
++	text-align: center;
++	flex-shrink: 0;
++	flex-grow: 1;
  }
-  
+ 
 +/* DateField */
 +
  DateField {
--    IBeadView:   ClassReference("org.apache.flex.html.beads.DateFieldView");
--    IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateFieldMouseController");
-     IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatMMDDYYYYBead");
 -    IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatYYYYMMDDBead");
++	IBeadView:   ClassReference("org.apache.flex.html.beads.DateFieldView");
++	IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateFieldMouseController");
++	IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatYYYYMMDDBead");
  }
  
 +/* RangeStepper */
 +
  RangeStepper {
  	IBeadView: ClassReference("org.apache.flex.html.beads.RangeStepperView");
  	IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModelExtended");
@@@ -295,13 -184,13 +276,18 @@@
  }
  
  Form {
--    
++	
++}
++
++Group {
++	IBeadView: ClassReference("org.apache.flex.html.beads.GroupView");
  }
  
  HContainer
  {
--    IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
++	IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
++	white-space: nowrap;
  }
  
  Image
@@@ -311,63 -200,55 +297,78 @@@
  	IBeadView:  ClassReference("org.apache.flex.html.beads.ImageView");
  }
  
++BinaryImage
++{
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.BinaryImageModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.ImageView");
++	IBinaryImageLoader:  ClassReference("org.apache.flex.html.beads.BinaryImageLoader");
++}
++
  ImageAndTextButton
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ImageAndTextModel");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ImageAndTextModel");
  }
  
  ImageButton
  {
--    border-style: none;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ImageModel");
++	border-style: none;
  }
  
  ImageButton:hover
  {
--    border-style: none;
++	border-style: none;
  }
  
  ImageButton:active
  {
--    border-style: none;
- }
- 
- BinaryImage
- {
- 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.BinaryImageModel");
- 	IBeadView:  ClassReference("org.apache.flex.html.beads.ImageView");
- 	IBinaryImageLoader:  ClassReference("org.apache.flex.html.beads.BinaryImageLoader");
++	border-style: none;
  }
  
  VContainer
  {
--    IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
++	IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
  }
  
  List
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
--    IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
--    IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
--    IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
--    IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
--	IViewport: ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
++	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
++	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
++	IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
  	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
  	border-style: solid;
  	border-color: #222222;
 +	background-color: #FFFFFF;
  }
  
 -Tree
++Accordion
+ {
+ 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.AccordionView");			
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayout");
++	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
++	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.AccordionItemRenderer");
++	IViewport: ClassReference("org.apache.flex.html.supportClasses.ClippingViewport");
++	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
++	IAccordionCollapseBead: ClassReference("org.apache.flex.html.beads.AccordionCollapseBead");
++	border-style: solid;
++	border-color: #222222;
++}
++
 +Tree
 +{
 +	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArrayListSelectionModel");
  	IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
  	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.TreeSingleSelectionMouseController");
  	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
--	IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
  	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForHierarchicalData");
  	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
  	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.TreeItemRenderer");
@@@ -379,141 -260,139 +380,163 @@@
  
  NumericStepper
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
  }
  
  Panel
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.PanelModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.PanelView");
--    
--    background-color: #FFFFFF;
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
--	padding: 2px;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.PanelModel");
++	IBeadView: ClassReference("org.apache.flex.html.beads.PanelView");
++	IPanelLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");
++	
++	background-color: #FFFFFF;
++	border: solid 1px #333333
  }
  
  PanelWithControlBar
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.PanelModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.PanelWithControlBarView");
--    
--    background-color: #FFFFFF;
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
--	padding: 2px;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.PanelModel");
++	IBeadView: ClassReference("org.apache.flex.html.beads.PanelWithControlBarView");
++	IPanelLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");
++	
++	background-color: #FFFFFF;
++	border: solid 1px #333333;
++}
++
++Panel .TitleBar
++{
++	border-bottom: solid 1px #333333;
  }
  
  SimpleList
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
--    IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
--    IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
--    IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
--    IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
++	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
++	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
++	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
  	IViewport: ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport");
  	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
  }
  
  Slider
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
-     iBeadView:  ClassReference("org.apache.flex.html.beads.SliderView");
-     iBeadController: ClassReference("org.apache.flex.html.beads.controllers.SliderMouseController");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
++	iBeadView:  ClassReference("org.apache.flex.html.beads.SliderView");
++	iBeadController: ClassReference("org.apache.flex.html.beads.controllers.SliderMouseController");
  }
  
  Spinner
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.SpinnerView");
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
++	IBeadView:  ClassReference("org.apache.flex.html.beads.SpinnerView");
  }
  
  
  StringItemRenderer
  {
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
--    height: 16;
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
++	height: 24;
++	flex-shrink: 0;
++	flex-grow: 1;
++}
++
++AccordionItemRenderer
++{
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.AccordionItemRendererMouseController");
++	IBeadView: ClassReference("org.apache.flex.html.beads.AccordionItemRendererView");
++	flex-shrink: 0;
++	flex-grow: 1;
  }
  
  TreeItemRenderer
  {
  	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
--	height: 16;
++	height: 24;
++	flex-shrink: 0;
++	flex-grow: 1;
  }
  
  TextInput
  {
--  border: 1px solid #808080;
--  border-radius: 2px;
--  padding: 4px;
--  margin: 0px;
++	border: 1px solid #808080;
++	border-radius: 2px;
++	padding: 4px;
++	margin: 0px;
  }
  
  TextArea
  {
--  border: 1px solid #808080;
--  border-radius: 2px;
--  padding: 4px;
--  resize: none;
++	border: 1px solid #808080;
++	border-radius: 2px;
++	padding: 4px;
++	resize: none;
  }
  
  TitleBar
  {
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TitleBarModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.TitleBarView");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout");
--    iMeasurementBead: ClassReference("org.apache.flex.html.beads.TitleBarMeasurementBead");
--    background-color: #E2E2E2;
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
++	IBeadModel: ClassReference("org.apache.flex.html.beads.models.TitleBarModel");
++	IBeadView: ClassReference("org.apache.flex.html.beads.TitleBarView");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout");
++	iMeasurementBead: ClassReference("org.apache.flex.html.beads.TitleBarMeasurementBead");
++	background-color: #E2E2E2;
++	padding: 2px;
++	height: 30px;
++	flex-grow: 0;
++	min-height: 30px;
++}
++
++TitleBar .TitleBarCloseButton {
++	width: 16px;
++	height: 16px;
++	margin: 0px;
++}
++
++TitleBar .TitleBarTitle {
++	font-weight: bold;
++	padding: 0;
++	margin: 0;
  }
  
  .toggleTextButton
  {
--  background-color: #f8f8f8;
--  border: 1px solid #808080;
--  padding: 4px;
++	background-color: #f8f8f8;
++	border: 1px solid #808080;
++	padding: 4px;
  }
  
  .toggleTextButton:hover
  {
--  background-color: #e8e8e8;
--  border: 1px solid #808080;
--  padding: 4px;
++	background-color: #e8e8e8;
++	border: 1px solid #808080;
++	padding: 4px;
  }
  
  .toggleTextButton_Selected
  {
--  background-color: #d8d8d8;
--  border: 1px solid #808080;
--  padding: 4px;
++	background-color: #d8d8d8;
++	border: 1px solid #808080;
++	padding: 4px;
  }
  
  .toggleTextButton_Selected:hover
  {
--  background-color: #e8e8e8;
--  border: 1px solid #808080;
--  padding: 4px;
++	background-color: #e8e8e8;
++	border: 1px solid #808080;
++	padding: 4px;
  }
  
  ToolTip
  {
--    background-color: #FFFFCC;
++	background-color: #FFFFCC;
  }
  
  View
  {
--    IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
--    IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
--	IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
--	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
++	IBeadView: ClassReference("org.apache.flex.html.beads.GroupView");
++	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
  }
  
  WebBrowser
@@@ -526,280 -405,277 +549,324 @@@
  /* Global Style Declaration */
  global
  {
--    IStatesImpl: ClassReference("org.apache.flex.core.SimpleStatesImpl");
--    IEffectTimer: ClassReference("org.apache.flex.utils.EffectTimer");
--    effectTimerInterval: 10;
++	IStatesImpl: ClassReference("org.apache.flex.core.SimpleStatesImpl");
++	IEffectTimer: ClassReference("org.apache.flex.utils.EffectTimer");
++	effectTimerInterval: 10;
  }
  
  @media -flex-flash
  {
--
--Alert
--{
 -    IBeadModel: ClassReference("org.apache.flex.html.beads.models.AlertModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.AlertView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.AlertController");
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--    
 -    background-color: #FFFFFF;
 -    border-style: solid;
 -    border-color: #000000;
 -    border-width: 1px;
--}
--
--Border
--{
--  border-color: inherit;
--  border-style: inherit;
--  border-radius: inherit;
--  border-width: inherit;
--  border: inherit;
--}
--
--Button
--{
--    IBeadView: ClassReference("org.apache.flex.html.beads.CSSButtonView");
--}
--
--CheckBox
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.CheckBoxView");			
--}
--
--CloseButton
--{
--    IBeadView: ClassReference("org.apache.flex.html.beads.CloseButtonView");
--}
--
- ComboBoxList {
- 	iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
 -ComboBox
 -{
 -    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ComboBoxModel");
 -    IBeadView: ClassReference("org.apache.flex.html.beads.ComboBoxView");
 -    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ComboBoxController");
 -    IPopUp: ClassReference("org.apache.flex.html.supportClasses.DropDownListList");
 -    IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
 -    IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
 -    IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
--}
--
--Container
--{
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--}
--
--ControlBar
--{
--	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout");
--    iMeasurementBead: ClassReference("org.apache.flex.html.beads.ControlBarMeasurementBead");
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");    
- }
- 
- DateChooserList {
-    iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
-    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead"); 
- }
-        
- DateChooserHeader {
-     padding-top: 0px;
-     padding-bottom: 5px;
-     iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
-     iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");   
- }
-        
- DateItemRenderer {
-     margin: 0px;
-     padding: 5px;
--}
--
--DropDownList
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.DropDownListView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DropDownListController");
--    IPopUp: ClassReference("org.apache.flex.html.supportClasses.DropDownListList");
--}
--
--DropDownListList
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
--    IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
--    IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
--    IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
--    iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
--    border-style: solid;
--    border-radius: 4px;
--    border-color: #000000;
--    border-width: 1px;
--    background-color: #FFFFFF;
--}
--
--HRule
--{
--    IBeadView:  ClassReference("org.apache.flex.html.beads.HRuleView");
--}
--
--ImageButton
--{
--    IBeadView: ClassReference("org.apache.flex.html.beads.ImageButtonView");
--}
--
--ImageAndTextButton
--{
--    IBeadView: ClassReference("org.apache.flex.html.beads.CSSImageAndTextButtonView");
--}
--
--Label
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.TextFieldView");
--	iMeasurementBead: ClassReference("org.apache.flex.html.beads.TextFieldLabelMeasurementBead");
--}
--
--List
--{
--    iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
--    iBorderModel: ClassReference('org.apache.flex.html.beads.models.SingleLineBorderModel');
--}
--
--MultilineLabel
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.MultilineTextFieldView");
--}
--
--NumericStepper
--{
--    IBeadView: ClassReference("org.apache.flex.html.beads.NumericStepperView");
--    
--    padding: 0px;
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
--    background-color: #FFFFFF;
--    iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
--    iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
--}
--
--Panel
--{
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");    
--}
--
--PanelWithControlBar
--{
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--}
--
--RadioButton
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ValueToggleButtonModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.RadioButtonView");			
--}
--
--VScrollBar
--{
--    IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VScrollBarLayout");
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ScrollBarModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.VScrollBarView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.VScrollBarMouseController");
--}
--
--HScrollBar
--{
--	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HScrollBarLayout");
--	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ScrollBarModel");
--	IBeadView: ClassReference("org.apache.flex.html.beads.HScrollBarView");
--	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.HScrollBarMouseController");
--}
--
--SimpleAlert
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.AlertModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.SimpleAlertView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.AlertController");
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--    
--    background-color: #FFFFFF;
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
--}
--
--Slider
--{
 -    iBeadView:  ClassReference("org.apache.flex.html.beads.SliderView");
 -    iBeadController: ClassReference("org.apache.flex.html.beads.controllers.SliderMouseController");
--    iThumbView: ClassReference("org.apache.flex.html.beads.SliderThumbView");
--    iTrackView: ClassReference("org.apache.flex.html.beads.SliderTrackView");
--}
--
--Spinner
--{
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.SpinnerMouseController");
--}
--
--TextArea
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.TextAreaView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.EditableTextKeyboardController");
--    iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
--    iBorderModel: ClassReference('org.apache.flex.html.beads.models.SingleLineBorderModel');
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
--    background-color: #FFFFFF;
--}
--
--TextButton
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.CSSTextButtonView");
--    iMeasurementBead: ClassReference("org.apache.flex.html.beads.TextButtonMeasurementBead");
--}
--
--TextFieldItemRenderer
--{
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
--    height: 16;
--}
--
--TextInput
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.TextInputWithBorderView");
--    IBeadController: ClassReference("org.apache.flex.html.beads.controllers.EditableTextKeyboardController");
--    iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
--    iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
--    border-style: solid;
--    border-color: #000000;
--    border-width: 1px;
--    background-color: #FFFFFF;
--}
--
--TitleBar
--{
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--}
--
--ToggleTextButton
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
--    IBeadView:  ClassReference("org.apache.flex.html.beads.CSSTextToggleButtonView");
--}
--
--View
--{
--    iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
--    iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
--}
--
--VRule
--{
--    IBeadView:  ClassReference("org.apache.flex.html.beads.VRuleView");
--}
--
--/* SVG */
--
--svg|TextButton
--{
--    IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
--    IBeadView: ClassReference("org.apache.flex.html.beads.CSSTextButtonView");
--    iMeasurementBead: ClassReference("org.apache.flex.html.beads.TextButtonMeasurementBead");
--}
++	Accordion {
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
++	}
++	
++	Alert
++	{
++		IBeadView:  ClassReference("org.apache.flex.html.beads.AlertView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.AlertController");
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++	}
++	
++	Border
++	{
++		border-color: inherit;
++		border-style: inherit;
++		border-radius: inherit;
++		border-width: inherit;
++		border: inherit;
++	}
++	
++	Button
++	{
++		IBeadView: ClassReference("org.apache.flex.html.beads.CSSButtonView");
++	}
++	
++	ButtonBar
++	{
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
++	}
++	
++	CheckBox
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
++		IBeadView:  ClassReference("org.apache.flex.html.beads.CheckBoxView");			
++	}
++	
++	CSSCheckBox
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
++		IBeadView:  ClassReference("org.apache.flex.html.beads.CheckBoxView");			
++	}
++	
++	CloseButton
++	{
++		IBeadView: ClassReference("org.apache.flex.html.beads.CloseButtonView");
++	}
++	
++	Container
++	{
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
++	}
++	
++	ControlBar
++	{
++		IMeasurementBead: ClassReference("org.apache.flex.html.beads.ControlBarMeasurementBead");
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");  
++		border: solid 1px #333333;
++	}
++	
++	ComboBoxList {
++		IBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
++	}
++	
++	DataContainer {
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
++	}
++	
++	DataGridButtonBar {
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
++	}
++	
++	DateChooserList {
++		iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
++		iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead"); 
++	}
++	
++	DateChooserHeader {
++		padding-top: 0px;
++		padding-bottom: 5px;
++		iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
++		iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");   
++	}
++	
++	DateItemRenderer {
++		margin: 0px;
++		padding: 5px;
++	}
++	
++	DropDownList
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.DropDownListView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DropDownListController");
++		IPopUp: ClassReference("org.apache.flex.html.supportClasses.DropDownListList");
++	}
++	
++	DropDownListList
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
++		IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
++		IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
++		IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.StringItemRenderer");
++		iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
++		iBorderModel: ClassReference('org.apache.flex.html.beads.models.SingleLineBorderModel');
++		border-style: solid;
++		border-radius: 4px;
++		border-color: #333333;
++		border-width: 1px;
++		background-color: #FFFFFF;
++	}
++	
++	Group
++	{
++		iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		iBorderModel: ClassReference('org.apache.flex.html.beads.models.SingleLineBorderModel');
++	}
++	
++	HRule
++	{
++		IBeadView:  ClassReference("org.apache.flex.html.beads.HRuleView");
++	}
++	
++	ImageButton
++	{
++		IBeadView: ClassReference("org.apache.flex.html.beads.ImageButtonView");
++	}
++	
++	ImageAndTextButton
++	{
++		IBeadView: ClassReference("org.apache.flex.html.beads.CSSImageAndTextButtonView");
++	}
++	
++	Label
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.TextFieldView");
++		iMeasurementBead: ClassReference("org.apache.flex.html.beads.TextFieldLabelMeasurementBead");
++	}
++	
++	List
++	{
++		iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
++		iBorderModel: ClassReference('org.apache.flex.html.beads.models.SingleLineBorderModel');
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
++	}
++	
++	MultilineLabel
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.MultilineTextFieldView");
++	}
++	
++	NumericStepper
++	{
++		IBeadView: ClassReference("org.apache.flex.html.beads.NumericStepperView");
++		
++		padding: 0px;
++		border-style: solid;
++		border-color: #000000;
++		border-width: 1px;
++		background-color: #FFFFFF;
++		iBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
++		iBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
++	}
++	
++	Panel
++	{
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");    
++	}
++	
++	PanelWithControlBar
++	{
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++	}
++	
++	RadioButton
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ValueToggleButtonModel");
++		IBeadView:  ClassReference("org.apache.flex.html.beads.RadioButtonView");			
++	}
++	
++	VScrollBar
++	{
++		IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VScrollBarLayout");
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ScrollBarModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.VScrollBarView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.VScrollBarMouseController");
++	}
++	
++	HScrollBar
++	{
++		IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HScrollBarLayout");
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ScrollBarModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.HScrollBarView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.HScrollBarMouseController");
++	}
++	
++	SimpleAlert
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.AlertModel");
++		IBeadView:  ClassReference("org.apache.flex.html.beads.SimpleAlertView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.AlertController");
++		iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		
++		background-color: #FFFFFF;
++		border-style: solid;
++		border-color: #000000;
++		border-width: 1px;
++	}
++	
++	Slider
++	{
++		iThumbView: ClassReference("org.apache.flex.html.beads.SliderThumbView");
++		iTrackView: ClassReference("org.apache.flex.html.beads.SliderTrackView");
++	}
++	
++	Spinner
++	{
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.SpinnerMouseController");
++	}
++	
++	TextArea
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.TextAreaView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.EditableTextKeyboardController");
++		IBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
++		IBorderModel: ClassReference('org.apache.flex.html.beads.models.SingleLineBorderModel');
++		border-style: solid;
++		border-color: #000000;
++		border-width: 1px;
++		background-color: #FFFFFF;
++	}
++	
++	TextButton
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.CSSTextButtonView");
++		iMeasurementBead: ClassReference("org.apache.flex.html.beads.TextButtonMeasurementBead");
++	}
++	
++	Tree {
++		IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
++	}
++	
++	/*
++	TextFieldItemRenderer
++	{
++	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
++	height: 16;
++	}
++	*/
++	
++	TextInput
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.TextInputWithBorderView");
++		IBeadController: ClassReference("org.apache.flex.html.beads.controllers.EditableTextKeyboardController");
++		IBorderBead: ClassReference('org.apache.flex.html.beads.SingleLineBorderBead');
++		IBackgroundBead: ClassReference('org.apache.flex.html.beads.SolidBackgroundBead');
++		border-style: solid;
++		border-color: #000000;
++		border-width: 1px;
++		background-color: #FFFFFF;
++	}
++	
++	TitleBar
++	{
++		IBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++		IBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		border: solid 1px #333333;
++	}
++	
++	ToggleTextButton
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
++		IBeadView:  ClassReference("org.apache.flex.html.beads.CSSTextToggleButtonView");
++	}
++	
++	View
++	{
++		iBackgroundBead: ClassReference("org.apache.flex.html.beads.SolidBackgroundBead");
++		iBorderBead: ClassReference("org.apache.flex.html.beads.SingleLineBorderBead");
++	}
++	
++	VRule
++	{
++		IBeadView:  ClassReference("org.apache.flex.html.beads.VRuleView");
++	}
++	
++	/* SVG */
++	
++	svg|TextButton
++	{
++		IBeadModel: ClassReference("org.apache.flex.html.beads.models.TextModel");
++		IBeadView: ClassReference("org.apache.flex.html.beads.CSSTextButtonView");
++		iMeasurementBead: ClassReference("org.apache.flex.html.beads.TextButtonMeasurementBead");
++	}
  
  }


[30/43] git commit: [flex-asjs] [refs/heads/dual] - replace existing format bead if it exists

Posted by ah...@apache.org.
replace existing format bead if it exists


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

Branch: refs/heads/dual
Commit: 4842fa7a15a756026dcfa1ca4262039fded2db59
Parents: 23f3c5a
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 14:22:32 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 14:22:32 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/html/DateField.as | 22 ++++++++++++++++++++
 .../main/flex/org/apache/flex/html/DateField.as | 22 ++++++++++++++++++++
 2 files changed, 44 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4842fa7a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
index f46e453..ca142ba 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
@@ -20,6 +20,7 @@ package org.apache.flex.html
 {
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IDateChooserModel;
+	import org.apache.flex.core.IFormatBead;
 	import org.apache.flex.core.UIBase;
 	import org.apache.flex.core.ValuesManager;
 	
@@ -74,6 +75,27 @@ package org.apache.flex.html
             
 			super.addedToParent();
 		}
+
+		/**
+		 *  Replace existing format bead if it exists.
+		 *
+		 *  @copy org.apache.flex.core.IStrand#addBead()
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function addBead(bead:IBead):void
+		{
+			if (bead is IFormatBead) {
+				var formatBead:IBead = getBeadByType(IFormatBead);
+				if (formatBead != null) {
+					removeBead(formatBead);
+				}
+			}
+			super.addBead(bead);
+		}
 		
 		/**
 		 *  The currently selected date (or null if no date has been selected).

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4842fa7a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
index f33db9d..5b73db0 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
@@ -20,6 +20,7 @@ package org.apache.flex.html
 {
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IDateChooserModel;
+	import org.apache.flex.core.IFormatBead;
 	import org.apache.flex.core.UIBase;
 	import org.apache.flex.core.ValuesManager;
 	
@@ -75,6 +76,27 @@ package org.apache.flex.html
             
 			super.addedToParent();
 		}
+
+		/**
+		 *  Replace existing format bead if it exists.
+		 *
+		 *  @copy org.apache.flex.core.IStrand#addBead()
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		override public function addBead(bead:IBead):void
+		{
+			if (bead is IFormatBead) {
+				var formatBead:IBead = getBeadByType(IFormatBead);
+				if (formatBead != null) {
+					removeBead(formatBead);
+				}
+			}
+			super.addBead(bead);
+		}
 		
 		/**
 		 *  The currently selected date (or null if no date has been selected).


[21/43] flex-asjs git commit: doesn’t seem to work as JS only as get errors in compiling AS project

Posted by ah...@apache.org.
doesn\u2019t seem to work as JS only as get errors in compiling AS 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/65320f94
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/65320f94
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/65320f94

Branch: refs/heads/dual
Commit: 65320f9470652c5ffe1ae71cc6c5524408642c52
Parents: 25d67e1
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 15:35:19 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 15:35:19 2017 +1000

----------------------------------------------------------------------
 frameworks/projects/Network/src/main/flex/NetworkClasses.as    | 6 +-----
 .../projects/Network/src/main/resources/basic-manifest.xml     | 1 +
 2 files changed, 2 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/65320f94/frameworks/projects/Network/src/main/flex/NetworkClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/NetworkClasses.as b/frameworks/projects/Network/src/main/flex/NetworkClasses.as
index e4cd570..ed88471 100644
--- a/frameworks/projects/Network/src/main/flex/NetworkClasses.as
+++ b/frameworks/projects/Network/src/main/flex/NetworkClasses.as
@@ -28,11 +28,7 @@ package
 internal class NetworkClasses
 {	
     import org.apache.flex.net.URLBinaryLoader; URLBinaryLoader;
-	import org.apache.flex.net.HTTPConstants; HTTPConstants;
-
-    COMPILE::JS {
-        import org.apache.flex.net.beads.CORSCredentialsBead; CORSCredentialsBead;
-    }
+    import org.apache.flex.net.HTTPConstants; HTTPConstants;
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/65320f94/frameworks/projects/Network/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/resources/basic-manifest.xml b/frameworks/projects/Network/src/main/resources/basic-manifest.xml
index 235b09d..46f2ad9 100644
--- a/frameworks/projects/Network/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Network/src/main/resources/basic-manifest.xml
@@ -23,5 +23,6 @@
 
     <component id="HTTPService" class="org.apache.flex.net.HTTPService"/>
     <component id="BinaryUploader" class="org.apache.flex.net.BinaryUploader"/>
+    <component id="CORSCredentialsBead" class="org.apache.flex.net.beads.CORSCredentialsBead"/>
 
 </componentPackage>


[32/43] git commit: [flex-asjs] [refs/heads/dual] - two common date formats

Posted by ah...@apache.org.
two common date formats


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

Branch: refs/heads/dual
Commit: e8be4fc760cc5ed2a58f0f0cafd2de2f950e0aac
Parents: edd2783
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 14:24:35 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 14:24:35 2017 +1000

----------------------------------------------------------------------
 .../html/accessories/DateFormatDDMMYYYYBead.as  | 46 ++++++++++++++++++++
 .../html/accessories/DateFormatYYYYMMDDBead.as  | 46 ++++++++++++++++++++
 2 files changed, 92 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e8be4fc7/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
new file mode 100644
index 0000000..3af9332
--- /dev/null
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
@@ -0,0 +1,46 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.accessories
+{
+	import org.apache.flex.html.accessories.SimpleDateFormatBead;
+	
+	/**
+	 * The DateFormatBead class formats the display of a DateField using MM/DD/YYYY format.
+     * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class DateFormatDDMMYYYYBead extends SimpleDateFormatBead
+	{
+		/**
+		 * constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function DateFormatDDMMYYYYBead()
+		{
+			format = "DD/MM/YYYY";
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e8be4fc7/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
new file mode 100644
index 0000000..ac0fe28
--- /dev/null
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
@@ -0,0 +1,46 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.accessories
+{
+	import org.apache.flex.html.accessories.SimpleDateFormatBead;
+	
+	/**
+	 * The DateFormatBead class formats the display of a DateField using MM/DD/YYYY format.
+     * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class DateFormatYYYYMMDDBead extends SimpleDateFormatBead
+	{
+        /**
+         * constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        public function DateFormatYYYYMMDDBead()
+		{
+            format = "YYYY-MM-DD";
+        }
+    }
+}


[05/43] git commit: [flex-asjs] [refs/heads/dual] - Merge branch 'feature/mobile' into feature/layouts

Posted by ah...@apache.org.
Merge branch 'feature/mobile' into feature/layouts

* feature/mobile:
  Initial changes for 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/6256851b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/6256851b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/6256851b

Branch: refs/heads/dual
Commit: 6256851b9522427ec35f78ffb110dab53faf168b
Parents: d89a010 e0b3528
Author: Peter Ent <pe...@apache.org>
Authored: Thu Apr 13 14:31:01 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Apr 13 14:31:01 2017 -0400

----------------------------------------------------------------------
 .../ButtonBarButtonItemRenderer.as              |  34 +++-
 .../Mobile/src/main/flex/MobileClasses.as       |   1 +
 .../apache/flex/mobile/ManagedContentArea.as    |  55 ++++++
 .../apache/flex/mobile/StackedViewManager.as    |  51 ++++--
 .../org/apache/flex/mobile/TabbedViewManager.as |  42 +++++
 .../flex/org/apache/flex/mobile/TitleView.as    |   4 -
 .../org/apache/flex/mobile/ViewManagerBase.as   |  52 ++----
 .../flex/mobile/beads/StackedViewManagerView.as | 175 +++++++++++++------
 .../flex/mobile/beads/TabbedViewManagerView.as  | 175 +++++++++++++------
 .../flex/mobile/beads/ViewManagerViewBase.as    | 123 ++++++-------
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../Mobile/src/main/resources/defaults.css      |  21 +++
 12 files changed, 511 insertions(+), 223 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/6256851b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
----------------------------------------------------------------------


[42/43] git commit: [flex-asjs] [refs/heads/dual] - fix after merge

Posted by ah...@apache.org.
fix after merge


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

Branch: refs/heads/dual
Commit: 4941e12cdb7c7ce5c8c92b8d983734393ffa4354
Parents: 1691921
Author: Alex Harui <ah...@apache.org>
Authored: Fri Apr 21 09:31:12 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Apr 21 09:31:12 2017 -0700

----------------------------------------------------------------------
 .../Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4941e12c/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
index 9643b58..0935c2c 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/UIButtonBase.as
@@ -746,7 +746,7 @@ package org.apache.flex.core
 				_model = bead as IBeadModel;
             else if (bead is IBeadView)
                 _view = bead as IBeadView;
-			//bead.strand = this; // super.addBead already did this!
+			bead.strand = this; // super.addBead already did this!
 		}
 		
         /**


[36/43] git commit: [flex-asjs] [refs/heads/dual] - ButtonBar/DataGrid clean up. Removed DataGridButtonBarButtonItemRenderer and ButtonBarButtonItemRenderer classes and replaced them with TextButtonItemRenderer which is a TextButton that implements IItem

Posted by ah...@apache.org.
ButtonBar/DataGrid clean up. Removed DataGridButtonBarButtonItemRenderer and ButtonBarButtonItemRenderer classes and replaced them with TextButtonItemRenderer which is a TextButton that implements IItemRenderer. HTML ButtonBars now are much cleaner.


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

Branch: refs/heads/dual
Commit: 8a23e1e9f80a46a64256437d54e2032abbb3c699
Parents: 975b478
Author: Peter Ent <pe...@apache.org>
Authored: Mon Apr 17 17:11:10 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Mon Apr 17 17:11:10 2017 -0400

----------------------------------------------------------------------
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   2 +-
 .../flex/html/beads/layouts/ButtonBarLayout.as  |  66 ++---
 .../ButtonBarButtonItemRenderer.as              | 197 ---------------
 .../DataGridButtonBarButtonItemRenderer.as      |  91 -------
 .../supportClasses/TextButtonItemRenderer.as    | 244 +++++++++++++++++++
 .../HTML/src/main/resources/basic-manifest.xml  |   2 +-
 .../HTML/src/main/resources/defaults.css        |  12 +-
 7 files changed, 267 insertions(+), 347 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index 0e7e052..1b7441d 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -161,7 +161,7 @@ internal class HTMLClasses
 	import org.apache.flex.html.supportClasses.DataGroup; DataGroup;
 	import org.apache.flex.html.supportClasses.Viewport; Viewport;
 	import org.apache.flex.html.supportClasses.ScrollingViewport; ScrollingViewport;
-	import org.apache.flex.html.supportClasses.DataGridButtonBarButtonItemRenderer; DataGridButtonBarButtonItemRenderer;
+	import org.apache.flex.html.supportClasses.TextButtonItemRenderer; TextButtonItemRenderer;
 
 	import org.apache.flex.html.DataGridButtonBarTextButton; DataGridButtonBarTextButton;
 	import org.apache.flex.html.DataGridButtonBar; DataGridButtonBar;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
index f4b0e81..51d0c4c 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
@@ -19,31 +19,15 @@
 package org.apache.flex.html.beads.layouts
 {
 	import org.apache.flex.core.IBeadLayout;
-	import org.apache.flex.core.ILayoutHost;
-	import org.apache.flex.core.ILayoutParent;
+	import org.apache.flex.core.ILayoutChild;
 	import org.apache.flex.core.ILayoutView;
-	import org.apache.flex.core.IParentIUIBase;
-	import org.apache.flex.core.ISelectableItemRenderer;
-	import org.apache.flex.core.ISelectionModel;
+	import org.apache.flex.core.IStyleableObject;
 	import org.apache.flex.core.IStrand;
-	import org.apache.flex.core.IUIBase;
-	import org.apache.flex.core.IViewportModel;
-	import org.apache.flex.core.LayoutBase;
-	import org.apache.flex.core.SimpleCSSStyles;
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.core.ValuesManager;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.IEventDispatcher;
-	import org.apache.flex.html.List;
-	import org.apache.flex.html.beads.ButtonBarView;
 	import org.apache.flex.html.beads.models.ButtonBarModel;
 	import org.apache.flex.html.supportClasses.UIItemRendererBase;
-	import org.apache.flex.geom.Rectangle;
-	import org.apache.flex.utils.CSSUtils;
-	import org.apache.flex.utils.CSSContainerUtils;
 
 	/**
-	 *  The ButtonBarLayout class bead sizes and positions the org.apache.flex.html.Button
+	 *  The ButtonBarLayout class bead sizes and positions the button
 	 *  elements that make up a org.apache.flex.html.ButtonBar. This bead arranges the Buttons
 	 *  horizontally and makes them all the same width unless the buttonWidths property has been set in which case
 	 *  the values stored in that array are used.
@@ -103,43 +87,33 @@ package org.apache.flex.html.beads.layouts
 			}
 
 			var n:int = contentView.numElements;
+			if (n <= 0) return false;
 
 			for (var i:int=0; i < n; i++)
-			{
-				var ir:ISelectableItemRenderer = contentView.getElementAt(i) as ISelectableItemRenderer;
-				if (ir == null || !UIBase(ir).visible) continue;
+			{	
+				var ilc:ILayoutChild = contentView.getElementAt(i) as ILayoutChild;
+				if (ilc == null || !ilc.visible) continue;
+				if (!(ilc is IStyleableObject)) continue;
 				
 				COMPILE::SWF {
 					if (buttonWidths) {
 						var widthValue:* = buttonWidths[i];
 
 						if (_widthType == ButtonBarModel.PIXEL_WIDTHS) {
-							if (widthValue != null) UIBase(ir).width = Number(widthValue);
-							if (UIBase(ir).style == null) {
-								UIBase(ir).style = new SimpleCSSStyles();
-							}
-							UIBase(ir).style.flexGrow = 0;
+							if (widthValue != null) ilc.width = Number(widthValue);
+							IStyleableObject(ilc).style.flexGrow = 0;
 						}
 						else if (_widthType == ButtonBarModel.PROPORTIONAL_WIDTHS) {
 							if (widthValue != null) {
-								if (UIBase(ir).style == null) {
-									UIBase(ir).style = new SimpleCSSStyles();
-								}
-								UIBase(ir).style.flexGrow = Number(widthValue);
+								IStyleableObject(ilc).style.flexGrow = Number(widthValue);
 							}
 						}
 						else if (_widthType == ButtonBarModel.PERCENT_WIDTHS) {
-							if (widthValue != null) UIBase(ir).percentWidth = Number(widthValue);
-							if (UIBase(ir).style == null) {
-								UIBase(ir).style = new SimpleCSSStyles();
-							}
-							UIBase(ir).style.flexGrow = 0;
+							if (widthValue != null) ilc.percentWidth = Number(widthValue);
+							IStyleableObject(ilc).style.flexGrow = 0;
 						}
 					} else {
-						if (UIBase(ir).style == null) {
-							UIBase(ir).style = new SimpleCSSStyles();
-						}
-						UIBase(ir).style.flexGrow = 1;
+						IStyleableObject(ilc).style.flexGrow = 1;
 					}
 				}
 
@@ -149,22 +123,20 @@ package org.apache.flex.html.beads.layouts
 						var widthValue:* = buttonWidths[i];
 
 						if (_widthType == ButtonBarModel.PIXEL_WIDTHS) {
-							if (widthValue != null) UIBase(ir).width = Number(widthValue);
+							if (widthValue != null) ilc.width = Number(widthValue);
 						}
 						else if (_widthType == ButtonBarModel.PROPORTIONAL_WIDTHS) {
-							if (widthValue != null) UIBase(ir).element.style["flex-grow"] = String(widthValue);
+							if (widthValue != null) ilc.element.style["flex-grow"] = String(widthValue);
 						}
 						else if (_widthType == ButtonBarModel.PERCENT_WIDTHS) {
-							if (widthValue != null) UIBase(ir).percentWidth = Number(widthValue);
+							if (widthValue != null) ilc.percentWidth = Number(widthValue);
 						}
 					} else {
-						UIBase(ir).element.style["flex-grow"] = "1";
+						ilc.element.style["flex-grow"] = "1";
 					}
 					
-					UIBase(ir).height = contentView.height;
+					ilc.height = contentView.height;
 				}
-				
-				UIItemRendererBase(ir).adjustSize();
 			}
 
 			// now let the horizontal layout take care of things.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
deleted file mode 100644
index d9301f6..0000000
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
+++ /dev/null
@@ -1,197 +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.html.supportClasses
-{
-	import org.apache.flex.core.IItemRenderer;
-	import org.apache.flex.core.IItemRendererParent;
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.MouseEvent;
-	import org.apache.flex.html.TextButton;
-	import org.apache.flex.html.beads.ITextItemRenderer;
-	import org.apache.flex.events.ItemClickedEvent;
-	
-	COMPILE::JS
-	{
-		import org.apache.flex.core.WrappedHTMLElement;            
-	}
-
-	/**
-	 *  The ButtonBarButtonItemRenderer class handles the display of each item for the 
-	 *  org.apache.flex.html.ButtonBar component. This class uses a 
-	 *  org.apache.flex.html.Button to represent the data.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class ButtonBarButtonItemRenderer extends UIItemRendererBase implements ITextItemRenderer
-	{
-		/**
-		 *  constructor.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function ButtonBarButtonItemRenderer()
-		{
-			super();
-		}
-		
-		/**
-		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
-		 * @flexjsignorecoercion HTMLElement
-		 */
-		COMPILE::JS
-		override protected function createElement():WrappedHTMLElement
-		{
-			var result:WrappedHTMLElement = super.createElement();
-			trace("Element "+element+"; positioner "+positioner);
-			return result;
-		}
-		
-		protected var textButton:TextButton;
-		
-		/**
-		 * @private
-		 */
-		override public function addedToParent():void
-		{
-			super.addedToParent();
-		}
-		
-		/**
-		 * @private
-		 */
-		protected function handleClickEvent(event:MouseEvent):void
-		{
-			var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
-			newEvent.multipleSelection = event.shiftKey;
-			newEvent.index = index;
-			newEvent.data = data;
-			dispatchEvent(newEvent);
-		}
-		
-		/**
-		 *  The string version of the data associated with the instance of the itemRenderer.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get text():String
-		{
-			return data as String;
-		}
-		public function set text(value:String):void
-		{
-			data = value;
-		}
-		
-		/**
-		 * @private
-		 */
-		override public function setWidth(value:Number, noEvent:Boolean = false):void
-		{
-			super.setWidth(value, true);
-			textButton.width = value;
-			COMPILE::SWF {
-				textButton.height = height;
-			}
-			COMPILE::JS {
-				textButton.percentHeight = 100;
-			}
-		}
-		
-		/**
-		 * @private
-		 */
-		override public function setHeight(value:Number, noEvent:Boolean = false):void
-		{
-			super.setHeight(value, true);
-			textButton.height = value;
-			COMPILE::SWF {
-				textButton.width = width;
-			}
-			COMPILE::JS {
-				textButton.percentWidth = 100;
-			}
-		}
-		
-		/**
-		 *  The data to be displayed by the itemRenderer instance. For ButtonBarItemRenderer, the
-		 *  data's string version is used as the label for the Button.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function set data(value:Object):void
-		{
-			super.data = value;
-			
-			var added:Boolean = false;
-			if (textButton == null) {
-				textButton = new TextButton();
-				
-				// listen for clicks on the button and translate them into
-				// an itemClicked event.
-				textButton.addEventListener('click',handleClickEvent);
-				added = true;
-			}
-			
-			var valueAsString:String;
-			
-			if (value is String) {
-				valueAsString = value as String;
-			}
-			else if (value.hasOwnProperty("label")) {
-				valueAsString = String(value["label"]);
-			}
-			else if (value.hasOwnProperty("title")) {
-				valueAsString = String(value["title"]);
-			}
-			
-			if (valueAsString) textButton.text = valueAsString;
-			
-			if (added) addElement(textButton);
-		}
-		
-		/**
-		 * @private
-		 */
-		override public function adjustSize():void
-		{
-			COMPILE::SWF {
-				textButton.width = this.width;
-				textButton.height = this.height;
-			}
-			COMPILE::JS {
-				textButton.percentWidth = 100;
-			}
-			
-			updateRenderer();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
deleted file mode 100644
index d05036f..0000000
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/DataGridButtonBarButtonItemRenderer.as
+++ /dev/null
@@ -1,91 +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.html.supportClasses
-{
-	import org.apache.flex.core.IItemRenderer;
-	import org.apache.flex.core.IItemRendererParent;
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.MouseEvent;
-	import org.apache.flex.html.DataGridButtonBarTextButton;
-	import org.apache.flex.html.beads.ITextItemRenderer;
-	import org.apache.flex.events.ItemClickedEvent;
-
-	/**
-	 *  The ButtonBarButtonItemRenderer class handles the display of each item for the 
-	 *  org.apache.flex.html.ButtonBar component. This class uses a 
-	 *  org.apache.flex.html.Button to represent the data.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class DataGridButtonBarButtonItemRenderer extends ButtonBarButtonItemRenderer
-	{
-		/**
-		 *  constructor.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function DataGridButtonBarButtonItemRenderer()
-		{
-			super();
-		}
-		
-		/**
-		 *  The data to be displayed by the itemRenderer instance. For ButtonBarItemRenderer, the
-		 *  data's string version is used as the label for the Button.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override public function set data(value:Object):void
-		{
-			var added:Boolean = false;
-			if (textButton == null) {
-				textButton = new DataGridButtonBarTextButton();
-				textButton.percentWidth = 100;
-				
-				// listen for clicks on the button and translate them into
-				// an itemClicked event.
-				textButton.addEventListener('click',handleClickEvent);
-				added = true;
-			}
-			
-			super.data = value;
-			
-			if (added) addElement(textButton);
-		}
-		
-		/**
-		 * @private
-		 */
-		COMPILE::JS
-		override public function adjustSize():void
-		{
-			// not neeed for JS platform
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as
new file mode 100644
index 0000000..049fe9b
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextButtonItemRenderer.as
@@ -0,0 +1,244 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.supportClasses
+{
+	import org.apache.flex.core.IItemRenderer;
+	import org.apache.flex.core.IItemRendererParent;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.SimpleCSSStyles;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.MouseEvent;
+	import org.apache.flex.html.TextButton;
+	import org.apache.flex.html.beads.ITextItemRenderer;
+	import org.apache.flex.events.ItemClickedEvent;
+	
+	COMPILE::JS
+	{
+		import org.apache.flex.core.WrappedHTMLElement;            
+	}
+	
+	/**
+	 * The TextButtonItemRenderer class extends TextButton and turns it into an itemRenderer
+	 * suitable for use in most DataContainer/List/DataGrid applications.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+	 */
+	public class TextButtonItemRenderer extends TextButton implements ITextItemRenderer
+	{
+		public function TextButtonItemRenderer()
+		{
+			super();
+			
+			style = new SimpleCSSStyles();
+			
+			addEventListener('click',handleClickEvent);
+		}
+		
+		private var _data:Object;
+		
+		/**
+		 *  The data to be displayed as the text value. Use this in conjunction with
+		 *  the labelField property to select an item from the dataProvider record to use
+		 *  as the text value of the button.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get data():Object
+		{
+			return _data;
+		}
+		public function set data(value:Object):void
+		{
+			_data = value;
+			
+			var valueAsString:String;
+			
+			if (value is String) {
+				valueAsString = value as String;
+			}
+			else if (value.hasOwnProperty("label")) {
+				valueAsString = String(value["label"]);
+			}
+			else if (value.hasOwnProperty("title")) {
+				valueAsString = String(value["title"]);
+			}
+			
+			if (valueAsString) text = valueAsString;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function handleClickEvent(event:MouseEvent):void
+		{
+			var newEvent:ItemClickedEvent = new ItemClickedEvent("itemClicked");
+			newEvent.multipleSelection = event.shiftKey;
+			newEvent.index = index;
+			newEvent.data = data;
+			dispatchEvent(newEvent);
+		}
+		
+		/*
+		 * IItemRenderer, ISelectableItemRenderer
+		 */
+		
+		private var _itemRendererParent:Object;
+		
+		/**
+		 * The parent container for the itemRenderer instance.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get itemRendererParent():Object
+		{
+			return _itemRendererParent;
+		}
+		public function set itemRendererParent(value:Object):void
+		{
+			_itemRendererParent = value;
+		}
+		
+		private var _labelField:String = "label";
+		
+		/**
+		 * The name of the field within the data to use as a label. Some itemRenderers use this field to
+		 * identify the value they should show while other itemRenderers ignore this if they are showing
+		 * complex information.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get labelField():String
+		{
+			return _labelField;
+		}
+		public function set labelField(value:String):void
+		{
+			_labelField = value;
+		}
+		
+		private var _listData:Object;
+		
+		[Bindable("__NoChangeEvent__")]
+		/**
+		 *  Additional data about the list structure the itemRenderer may
+		 *  find useful.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get listData():Object
+		{
+			return _listData;
+		}
+		public function set listData(value:Object):void
+		{
+			_listData = value;
+		}
+		
+		private var _index:int;
+		
+		/**
+		 *  The position with the dataProvider being shown by the itemRenderer instance.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get index():int
+		{
+			return _index;
+		}
+		public function set index(value:int):void
+		{
+			_index = value;
+		}
+		
+		private var _hovered:Boolean;
+		
+		/**
+		 *  Whether or not the itemRenderer is in a hovered state.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get hovered():Boolean
+		{
+			return _hovered;
+		}
+		public function set hovered(value:Boolean):void
+		{
+			_hovered = value;
+		}
+		
+		private var _selected:Boolean;
+		
+		/**
+		 *  Whether or not the itemRenderer is in a selected state.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get selected():Boolean
+		{
+			return _selected;
+		}
+		public function set selected(value:Boolean):void
+		{
+			_selected = value;
+		}
+		
+		private var _down:Boolean;
+		
+		/**
+		 *  Whether or not the itemRenderer is in a down (or pre-selected) state.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get down():Boolean
+		{
+			return _down;
+		}
+		public function set down(value:Boolean):void
+		{
+			_down = value;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
index 65f21d7..4778ae8 100644
--- a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
@@ -89,9 +89,9 @@
     <component id="TreeItemRenderer" class="org.apache.flex.html.supportClasses.TreeItemRenderer"/>
     <component id="DataItemRenderer" class="org.apache.flex.html.supportClasses.DataItemRenderer"/>
     <component id="MXMLItemRenderer" class="org.apache.flex.html.supportClasses.MXMLItemRenderer"/>
-    <component id="ButtonBarButtonItemRenderer" class="org.apache.flex.html.supportClasses.ButtonBarButtonItemRenderer"/>
     <component id="DateItemRenderer" class="org.apache.flex.html.supportClasses.DateItemRenderer"/>
     <component id="DayNameItemRenderer" class="org.apache.flex.html.supportClasses.DayNameItemRenderer"/>
+    <component id="TextButtonItemRenderer" class="org.apache.flex.html.supportClasses.TextButtonItemRenderer"/>
     <!--
      <component id="TextFieldItemRenderer" class="org.apache.flex.html.supportClasses.TextFieldItemRenderer"/>
     <component id="HScrollBar" class="org.apache.flex.html.supportClasses.HScrollBar"/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8a23e1e9/frameworks/projects/HTML/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css
index bd1211b..ffd48e2 100644
--- a/frameworks/projects/HTML/src/main/resources/defaults.css
+++ b/frameworks/projects/HTML/src/main/resources/defaults.css
@@ -91,19 +91,11 @@ ButtonBar
 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.ButtonBarLayout");
 	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
 	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
-	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.ButtonBarButtonItemRenderer");
+	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.TextButtonItemRenderer");
 	
 	border-style: none;
 }
 
-ButtonBarButtonItemRenderer
-{
-	width: 80;
-	height: 30;
-	flex-shrink: 0;
-	flex-grow: 1;
-}
-
 ComboBox
 {
 	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ComboBoxModel");
@@ -190,7 +182,7 @@ DataGridButtonBar
 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.ButtonBarLayout");
 	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.TextItemRendererFactoryForArrayData");
 	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
-	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.DataGridButtonBarButtonItemRenderer");
+	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.TextButtonItemRenderer");
 	
 	border-style: none;
 }


[18/43] git commit: [flex-asjs] [refs/heads/dual] - use header constants, improve variable names, add missing comments

Posted by ah...@apache.org.
use header constants, improve variable names, add missing comments


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

Branch: refs/heads/dual
Commit: 350e1f07aafd372aecd0be5b903a750125935ce6
Parents: 198ae7c
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:42:22 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:42:22 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/net/URLStream.as  | 135 +++++++++++++++----
 1 file changed, 109 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/350e1f07/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
index 2ec3c85..be3a9d6 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
@@ -79,15 +79,15 @@ package org.apache.flex.net
         public function get response():BinaryData
         {
             COMPILE::JS
-                {
+			{
                     return new BinaryData(xhr.response as ArrayBuffer);
-                }
-                COMPILE::SWF
-                {
-                    var ba:ByteArray = new ByteArray();
-                    flashUrlStream.readBytes(ba);
-                    return new BinaryData(ba);
-                }
+			}
+			COMPILE::SWF
+			{
+				var ba:ByteArray = new ByteArray();
+				flashUrlStream.readBytes(ba);
+				return new BinaryData(ba);
+			}
         }
 
         public function load(urlRequest:org.apache.flex.net.URLRequest):void
@@ -124,7 +124,7 @@ package org.apache.flex.net
 				var contentSet:Boolean = false;
 				for each (var requestHeader:org.apache.flex.net.URLRequestHeader in urlRequest.requestHeaders)
 				{
-					if(requestHeader.name.toLowerCase() == "content-type")
+					if(requestHeader.name.toLowerCase() == HTTPHeader.CONTENT_TYPE.toLocaleLowerCase())
 					{
 						contentSet = true;
 						req.contentType = requestHeader.value;
@@ -133,7 +133,7 @@ package org.apache.flex.net
 				}
 				if(!contentSet)
 				{
-					req.requestHeaders.push(new flash.net.URLRequestHeader("Content-type", urlRequest.contentType));
+					req.requestHeaders.push(new flash.net.URLRequestHeader(HTTPHeader.CONTENT_TYPE, urlRequest.contentType));
 					
 				}
 				if (urlRequest.data)
@@ -152,12 +152,29 @@ package org.apache.flex.net
                 flashUrlStream.load(req);
             }
         }
+
+		/**
+		 *  HTTP status changed (Flash only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         COMPILE::SWF
-		private function flash_status(ev:HTTPStatusEvent):void
+		private function flash_status(event:HTTPStatusEvent):void
 		{
-			setStatus(ev.status);
+			setStatus(event.status);
 		}
-		
+
+		/**
+		 *  IO error occurred (Flash only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         COMPILE::SWF 
         protected function flash_onIoError(event:IOErrorEvent):void
         {
@@ -168,16 +185,32 @@ package org.apache.flex.net
 				onError(this);
 			cleanupCallbacks();
         }
-		
+
+		/**
+		 *  Security error occurred (Flash only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
 		COMPILE::SWF
-		private function flash_onSecurityError(ev:flash.events.Event):void
+		private function flash_onSecurityError(event:flash.events.Event):void
 		{
 			dispatchEvent(new DetailEvent(HTTPConstants.COMMUNICATION_ERROR,false,false,HTTPConstants.SECURITY_ERROR));
 			if(onError)
 				onError(this);
 			cleanupCallbacks();
 		}
-            
+
+		/**
+		 *  Upload complete (Flash only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         COMPILE::SWF
         protected function flash_complete(event:flash.events.Event):void
         {
@@ -186,32 +219,57 @@ package org.apache.flex.net
 				onComplete(this);
 			cleanupCallbacks();
         }
+
+		/**
+		 *  Upload is progressing (Flash only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         COMPILE::SWF
-        protected function flash_progress(ev:flash.events.ProgressEvent):void
+        protected function flash_progress(event:flash.events.ProgressEvent):void
         {
             var progEv:org.apache.flex.events.ProgressEvent = new org.apache.flex.events.ProgressEvent(org.apache.flex.events.ProgressEvent.PROGRESS);
 			
-			progEv.current = bytesLoaded = ev.bytesLoaded;
-			progEv.total = bytesTotal = ev.bytesTotal;
+			progEv.current = bytesLoaded = event.bytesLoaded;
+			progEv.total = bytesTotal = event.bytesTotal;
             dispatchEvent(progEv);
 			if(onProgress)
 				onProgress(this);
         }
-        
+
+		/**
+		 *  Upload is progressing (JS only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         COMPILE::JS
-        private function xhr_progress(e:Object):void 
+        private function xhr_progress(error:Object):void
         {
 			var progEv:ProgressEvent = new ProgressEvent(ProgressEvent.PROGRESS);
-			progEv.current = bytesLoaded = e.loaded;
-			progEv.total = bytesTotal = e.total;
+			progEv.current = bytesLoaded = error.loaded;
+			progEv.total = bytesTotal = error.total;
 			
             dispatchEvent(progEv);
 			if(onProgress)
 				onProgress(this);
         }
-        
+
+		/**
+		 *  HTTP status change (JS only).
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         COMPILE::JS
-        private function xhr_onreadystatechange(e:*):void
+        private function xhr_onreadystatechange(error:*):void
         {
 			setStatus(xhr.status);
 			//we only need to deal with the status when it's done.
@@ -245,7 +303,15 @@ package org.apache.flex.net
 			}
 			cleanupCallbacks();
         }
-		
+
+		/**
+		 *  Set the HTTP request status.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
 		private function setStatus(value:int):void
 		{
 			if(value != requestStatus)
@@ -257,6 +323,14 @@ package org.apache.flex.net
 			}
 		}
 
+		/**
+		 *  Abort an connection.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         public function close():void
         {
             COMPILE::SWF
@@ -294,6 +368,14 @@ package org.apache.flex.net
 		 */        
 		public var endian:String = Endian.BIG_ENDIAN;
 
+		/**
+		 *  Cleanup all callbacks.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
 		private function cleanupCallbacks():void
 		{
 			onComplete = null;
@@ -301,6 +383,7 @@ package org.apache.flex.net
 			onProgress = null;
 			onStatus = null;
 		}
+
 		/**
 		 *  Callback for complete event.
 		 *  


[31/43] flex-asjs git commit: Bead to dead with simple date formats. Doesn’t support time zones, some foreign date formats, month names and a lot of other things.

Posted by ah...@apache.org.
Bead to dead with simple date formats. Doesn\u2019t support time zones, some foreign date formats, month names and a lot of other things.


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

Branch: refs/heads/dual
Commit: edd27839eefc8d2352dad8ee997142e3979418f8
Parents: 4842fa7
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 14:24:16 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 14:24:16 2017 +1000

----------------------------------------------------------------------
 .../html/accessories/SimpleDateFormatBead.as    | 222 +++++++++++++++++++
 1 file changed, 222 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/edd27839/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/SimpleDateFormatBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/SimpleDateFormatBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/SimpleDateFormatBead.as
new file mode 100644
index 0000000..f2548a7
--- /dev/null
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/SimpleDateFormatBead.as
@@ -0,0 +1,222 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.accessories
+{
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IDateChooserModel;
+	import org.apache.flex.core.IFormatBead;
+	import org.apache.flex.core.IStrand;
+    import org.apache.flex.core.IStrandWithModel;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	
+	/**
+	 * The DateFormatBead class formats the display of a DateField using a format.
+	 *  
+     *  @flexjsignoreimport org.apache.flex.core.IStrandWithModel
+     * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.8
+	 */
+	public class SimpleDateFormatBead extends EventDispatcher implements IBead, IFormatBead
+	{
+		/**
+		 * constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function SimpleDateFormatBead()
+		{
+		}
+
+		private var _format:String;
+		private var _seperator:String;
+		private var _propertyName:String;
+		private var _eventName:String;
+		private var _formattedResult:String;
+		
+		/**
+		 *  The name of the property on the model holding the value to be formatted.
+		 *  The default is selectedDate.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get propertyName():String
+		{
+			if (_propertyName == null) {
+				return "selectedDate";
+			}
+			return _propertyName;
+		}
+		public function set propertyName(value:String):void
+		{
+			_propertyName = value;
+		}
+		
+		/**
+		 *  The name of the event dispatched when the property changes. The
+		 *  default is selectedDateChanged.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get eventName():String
+		{
+			if (_eventName == null) {
+				return propertyName+"Changed";
+			}
+			return _eventName;
+		}
+
+		public function set eventName(value:String):void
+		{
+			_eventName = value;
+		}
+
+		/**
+		 *  The format of the date string.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get format():String
+		{
+			if (_format == null) {
+                _format = "YYYY/MM/DD";
+                _seperator = "/";
+            }
+			return _format;
+		}
+
+		public function set format(value:String):void
+		{
+			if (_format != value) {
+                _format = value;
+
+				var length:int = _format.length;
+
+                for (var i:int = 0; i < length; i++) {
+					var letter:String = _format.charAt(i);
+                    // assumes a single separator
+                    if (letter != 'M' && letter != 'Y' && letter != 'D') {
+                        _seperator = letter;
+						break;
+                    }
+                }
+                _format = value;
+            }
+		}
+		
+		/**
+		 *  The formatted result.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function get formattedString():String
+		{
+			return _formattedResult;
+		}
+		
+		private var _strand:IStrand;
+		
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+         *  @flexjsignorecoercion org.apache.flex.core.IStrandWithModel
+         * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			
+			var model:IDateChooserModel = IStrandWithModel(_strand).model as IDateChooserModel;
+			model.addEventListener(propertyName+"Changed",handleTextChange);
+		}
+		
+		/**
+		 * @private
+         * 
+         * @flexjsignorecoercion org.apache.flex.core.IStrandWithModel
+		 */
+		private function handleTextChange(event:Event):void
+		{
+			var model:IDateChooserModel = IStrandWithModel(_strand).model as IDateChooserModel;
+			
+			var selectedDate:Date = model.selectedDate;
+			if (selectedDate != null) {
+				var month:String = String(selectedDate.getMonth()+1);
+				var day:String = String(selectedDate.getDate());
+				var year:String = String(selectedDate.getFullYear());
+				var tokens:Array = _format.split(_seperator);
+				var length:int = tokens.length;
+
+				_formattedResult = "";
+				
+				for (var i:int = 0; i < length; i++) {
+                    switch (tokens[i]) {
+                        case "YYYY":
+                            _formattedResult += year;
+                            break;
+                        case "YY":
+							_formattedResult += year.slice(2,3);
+                            break;
+                        case "MM":
+                            if (Number(month) < 10)
+                                month = "0" + month;
+                        case "M":
+							_formattedResult += month;
+                            break;
+                        case "DD":
+                            if (Number(day) < 10)
+                                day = "0" + day;
+                        case "D":
+							_formattedResult += day;
+                            break;
+                    }
+
+                    if (i <= length - 2) {
+						_formattedResult += _seperator;
+					}
+				}
+
+				dispatchEvent(new Event("formatChanged") );
+			}
+		}
+		
+	}
+}


[06/43] git commit: [flex-asjs] [refs/heads/dual] - Mobile framework changes.

Posted by ah...@apache.org.
Mobile framework changes.


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

Branch: refs/heads/dual
Commit: fd5eaae541f5740d80bcf77aaa657c4eeb59a07a
Parents: 6256851
Author: Peter Ent <pe...@apache.org>
Authored: Fri Apr 14 08:53:04 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Apr 14 08:53:04 2017 -0400

----------------------------------------------------------------------
 .../apache/flex/mobile/StackedViewManager.as    |  30 +-----
 .../org/apache/flex/mobile/TabbedViewManager.as |  32 ------
 .../org/apache/flex/mobile/ViewManagerBase.as   |   4 -
 .../flex/mobile/beads/StackedViewManagerView.as | 105 +++++++++----------
 .../flex/mobile/beads/TabbedViewManagerView.as  |  69 ++++--------
 .../flex/mobile/beads/ViewManagerViewBase.as    |  18 +++-
 .../Mobile/src/main/resources/defaults.css      |  16 +++
 7 files changed, 100 insertions(+), 174 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd5eaae5/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
index 79368fd..8f1eeea 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/StackedViewManager.as
@@ -135,14 +135,6 @@ package org.apache.flex.mobile
 		override public function addedToParent():void
 		{
 			super.addedToParent();
-			
-//			var tabbedView:StackedViewManagerView = getBeadByType(StackedViewManagerView) as StackedViewManagerView;
-//			
-//			var n:int = ViewManagerModel(model).views.length;
-//			if (n > 0) {
-//				var view:IViewManagerView = ViewManagerModel(model).views[0] as IViewManagerView;
-//				push(view);
-//			}
 		}
 
 		
@@ -158,16 +150,6 @@ package org.apache.flex.mobile
 		{
 			nextView.viewManager = this;
 			ViewManagerModel(model).pushView(nextView);
-			
-//			var stackedView:StackedViewManagerView = getBeadByType(StackedViewManagerView) as StackedViewManagerView;
-//			
-//			if (_topView != null) {
-//				stackedView.contentArea.removeElement(_topView);
-//			}
-//			_topView = nextView;
-//			stackedView.contentArea.addElement(_topView);
-//			
-//			dispatchEvent( new Event("viewChanged") );
 		}
 		
 		/**
@@ -178,18 +160,10 @@ package org.apache.flex.mobile
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		public function pop():void
+		public function pop():IChild
 		{
 			var stackedView:StackedViewManagerView = getBeadByType(StackedViewManagerView) as StackedViewManagerView;
-			
-//			if (ViewManagerModel(model).views.length > 1) {
-//				var lastView:IChild = ViewManagerModel(model).popView() as IChild;
-//				stackedView.contentArea.removeElement(_topView);
-//				stackedView.contentArea.addElement(lastView);
-//				_topView = lastView as IViewManagerView;
-//				
-//				dispatchEvent( new Event("viewChanged") );
-//			}
+			return ViewManagerModel(model).popView();
 		}
 
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd5eaae5/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
index 3b0d89d..5a895d5 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TabbedViewManager.as
@@ -91,38 +91,6 @@ package org.apache.flex.mobile
 		override public function addedToParent():void
 		{
 			super.addedToParent();
-			
-//			var tabbedView:TabbedViewManagerView = getBeadByType(TabbedViewManagerView) as TabbedViewManagerView;
-//			
-//			var n:int = ViewManagerModel(model).views.length;
-//			if (n > 0) {
-//				for (var i:int = 0; i < n; i++)
-//				{
-//					var view:IViewManagerView = ViewManagerModel(model).views[i] as IViewManagerView;
-//					view.viewManager = this;
-//					if (i == 0) {
-//						tabbedView.contentArea.addElement(view, true);
-//					}
-//				}
-//				ViewManagerModel(model).selectedIndex = 0;
-//			}
-		}
-		
-		/**
-		 * @private
-		 */
-		override protected function changeView( event:Event ):void
-		{
-//			var tabbedView:TabbedViewManagerView = getBeadByType(TabbedViewManagerView) as TabbedViewManagerView;
-//			
-//			var index:Number = ViewManagerModel(model).selectedIndex;
-//			if (currentView) {
-//				tabbedView.contentArea.removeElement(currentView);
-//			}
-//			currentView = views[index];
-//			tabbedView.contentArea.addElement(currentView);
-//
-//			dispatchEvent( new Event("viewChanged") );
 		}
 
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd5eaae5/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
index cc16ae3..549891d 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
@@ -53,10 +53,6 @@ package org.apache.flex.mobile
 		{
 			super();
 			
-			// views always fill their space
-			percentWidth = 100;
-			percentHeight = 100;
-			
 			model.addEventListener("selectedIndexChanged", changeView);
 
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd5eaae5/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
index bd99b00..2e4e009 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -26,6 +26,7 @@ package org.apache.flex.mobile.beads
 	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.IViewManager;
 	import org.apache.flex.mobile.IViewManagerView;
 	import org.apache.flex.mobile.ManagedContentArea;
 	import org.apache.flex.mobile.chrome.NavigationBar;
@@ -57,6 +58,11 @@ package org.apache.flex.mobile.beads
 		}
 		
 		private var _strand:IStrand;
+		
+		/*
+		 * Children
+		 */
+		
 		private var _contentArea:ManagedContentArea;
 		
 		public function get contentArea():ManagedContentArea
@@ -75,6 +81,10 @@ package org.apache.flex.mobile.beads
 			model.toolBar = value;
 		}
 		
+		/*
+		 * ViewBead
+		 */
+		
 		override public function get strand():IStrand
 		{
 			return _strand;
@@ -102,9 +112,12 @@ package org.apache.flex.mobile.beads
 		{			
 			super.handleInitComplete(event);
 			
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			IEventDispatcher(model).addEventListener("viewPushed", handlePushEvent);
+			IEventDispatcher(model).addEventListener("viewPopped", handlePopEvent);
+			
 			COMPILE::SWF {
 				_contentArea.percentWidth = 100;
-				_contentArea.percentHeight = 100;
 			}
 			UIBase(_strand).addElement(_contentArea);
 			
@@ -112,13 +125,40 @@ package org.apache.flex.mobile.beads
 				UIBase(_strand).addElement(toolBar);
 			}
 			
-			performLayout(event);
-			
 			showViewByIndex(0);
 		}
 		
 		private var _topView:IViewManagerView;
 		
+		private function handlePushEvent(event:Event):void
+		{
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			var n:int = model.views.length;
+			if (n > 0) {
+				showViewByIndex(n-1);
+			}
+		}
+		
+		private function handlePopEvent(event:Event):void
+		{
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			var n:int = model.views.length;
+			if (n > 0) {
+				showViewByIndex(n-1);
+			}
+		}
+		
+		public function showView(view:IViewManagerView):void
+		{
+			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
+			for(var i:int=0; i < model.views.length; i++) {
+				if (view == model.views[i]) {
+					showViewByIndex(i);
+					break;
+				}
+			}
+		}
+		
 		protected function showViewByIndex(index:int):void
 		{
 			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
@@ -127,6 +167,7 @@ package org.apache.flex.mobile.beads
 				contentArea.removeElement(_topView);
 			}
 			_topView = model.views[index] as IViewManagerView;
+			_topView.viewManager = _strand as IViewManager;
 			contentArea.addElement(_topView);
 			
 			COMPILE::JS {
@@ -134,11 +175,16 @@ package org.apache.flex.mobile.beads
 					UIBase(_topView).element.style["flex-grow"] = "1";
 				}
 			}
+			COMPILE::SWF {
+				UIBase(_topView).percentWidth = 100;
+				UIBase(_topView).percentHeight = 100;
+				contentArea.layoutNeeded();
+			}
 		}
 		
-		override protected function layoutViewAfterContentLayout():void
+		override public function afterLayout():void
 		{
-			super.layoutViewAfterContentLayout();
+			super.afterLayout();
 			
 			COMPILE::SWF {
 				if (_topView) {
@@ -147,54 +193,5 @@ package org.apache.flex.mobile.beads
 				}
 			}
 		}
-		
-		/**
-		 * @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/fd5eaae5/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
index 227ae74..7959da0 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -26,6 +26,7 @@ package org.apache.flex.mobile.beads
 	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.IViewManager;
 	import org.apache.flex.mobile.IViewManagerView;
 	import org.apache.flex.mobile.ManagedContentArea;
 	import org.apache.flex.mobile.chrome.NavigationBar;
@@ -58,6 +59,11 @@ package org.apache.flex.mobile.beads
 		}
 		
 		private var _strand:IStrand;
+		
+		/*
+		 * Children
+		 */
+		
 		private var _contentArea:ManagedContentArea;
 		
 		public function get tabBar():TabBar
@@ -76,6 +82,10 @@ package org.apache.flex.mobile.beads
 			return _contentArea;
 		}
 		
+		/*
+		 * ViewBead
+		 */
+		
 		override public function get strand():IStrand
 		{
 			return _strand;
@@ -104,7 +114,6 @@ package org.apache.flex.mobile.beads
 			
 			COMPILE::SWF {
 				_contentArea.percentWidth = 100;
-				_contentArea.percentHeight = 100;
 			}
 			UIBase(_strand).addElement(_contentArea);
 			
@@ -112,8 +121,6 @@ package org.apache.flex.mobile.beads
 				UIBase(_strand).addElement(tabBar);
 			}
 			
-			performLayout(event);
-			
 			showViewByIndex(0);
 		}
 		
@@ -127,6 +134,7 @@ package org.apache.flex.mobile.beads
 				contentArea.removeElement(_currentView);
 			}
 			_currentView = model.views[index] as IViewManagerView;
+			_currentView.viewManager = _strand as IViewManager;
 			contentArea.addElement(_currentView);
 			
 			COMPILE::JS {
@@ -134,11 +142,16 @@ package org.apache.flex.mobile.beads
 					UIBase(_currentView).element.style["flex-grow"] = "1";
 				}
 			}
+			COMPILE::SWF {
+				UIBase(_currentView).percentWidth = 100;
+				UIBase(_currentView).percentHeight = 100;
+				contentArea.layoutNeeded();
+			}
 		}
 		
-		override protected function layoutViewAfterContentLayout():void
+		override public function afterLayout():void
 		{
-			super.layoutViewAfterContentLayout();
+			super.afterLayout();
 			
 			COMPILE::SWF {
 				if (_currentView) {
@@ -162,51 +175,5 @@ package org.apache.flex.mobile.beads
 			
 			showViewByIndex(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/fd5eaae5/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
index 5599ad9..82337c4 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ViewManagerViewBase.as
@@ -57,6 +57,10 @@ package org.apache.flex.mobile.beads
 			super();
 		}
 		
+		/*
+		 * Children
+		 */
+		
 		public function get navigationBar():NavigationBar
 		{
 			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
@@ -68,6 +72,10 @@ package org.apache.flex.mobile.beads
 			model.navigationBar = value;
 		}
 		
+		/*
+		 * ViewBead
+		 */
+		
 		private var _strand:IStrand;
 		public function get strand():IStrand
 		{
@@ -79,7 +87,7 @@ package org.apache.flex.mobile.beads
 			_strand = value;
 			
 			var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
-			model.addEventListener("selectedIndexChanged", viewsChangedHandler);
+//			model.addEventListener("selectedIndexChanged", viewsChangedHandler);
 
 			if (model.navigationBarItems)
 			{
@@ -102,10 +110,10 @@ package org.apache.flex.mobile.beads
 		/**
 		 * @private
 		 */
-		protected function viewsChangedHandler(event:Event):void
-		{
-			layoutChromeElements();
-		}
+//		protected function viewsChangedHandler(event:Event):void
+//		{
+//			layoutChromeElements();
+//		}
 		
 		/**
 		 * @private

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd5eaae5/frameworks/projects/Mobile/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/defaults.css b/frameworks/projects/Mobile/src/main/resources/defaults.css
index 405a3a5..f360d5c 100644
--- a/frameworks/projects/Mobile/src/main/resources/defaults.css
+++ b/frameworks/projects/Mobile/src/main/resources/defaults.css
@@ -22,7 +22,10 @@
 
 NavigationBar
 {
+	height: 55px;
+	min-height: 55px;
 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalFlexLayout");
+	flex-grow: 0;
 }
 
 StackedViewManager 
@@ -43,6 +46,19 @@ ManagedContentArea
 {
 	display: flex;
 	flex-grow: 1;
+	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
+}
+
+TabBar {
+	flex-grow: 0;
+	height: 40px;
+	min-height: 40px;
+}
+
+ToolBar {
+	flex-grow: 0;
+	height: 40px;
+	min-height: 40px;
 }
 
 ToggleSwitch


[16/43] git commit: [flex-asjs] [refs/heads/dual] - fill in missing comments

Posted by ah...@apache.org.
fill in missing comments


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

Branch: refs/heads/dual
Commit: c57d7754009607ed8eae3eebc1edc5a69a1fe12c
Parents: 18d62de
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:41:19 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:41:19 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/net/URLRequest.as | 30 ++++++++++++++++++--
 1 file changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c57d7754/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
index 389531f..3c39f50 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
@@ -71,7 +71,15 @@ package org.apache.flex.net
 		 */	
 		public var method:String = HTTPConstants.GET;
 		private var _requestHeaders:Array;
-        
+
+		/**
+		 *   Set the URL request string.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         public function URLRequest(url:String = null)
         {
             super();
@@ -81,12 +89,28 @@ package org.apache.flex.net
             }
             this.requestHeaders = [];
         }
-        
+
+		/**
+		 *   Set the URL request headers.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         public function get requestHeaders():Array
         {
             return _requestHeaders;
         }
-        
+
+		/**
+		 *   Get the URL request headers.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         public function set requestHeaders(value:Array) : void
         {
 			_requestHeaders = value;


[29/43] git commit: [flex-asjs] [refs/heads/dual] - add new classes to framework

Posted by ah...@apache.org.
add new classes to framework


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

Branch: refs/heads/dual
Commit: 23f3c5ad13b453f321a6a8a0acd284b50fb02fc4
Parents: ee79111
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 13:23:59 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 13:23:59 2017 +1000

----------------------------------------------------------------------
 frameworks/projects/Formatters/src/main/flex/FormattersClasses.as | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/23f3c5ad/frameworks/projects/Formatters/src/main/flex/FormattersClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/FormattersClasses.as b/frameworks/projects/Formatters/src/main/flex/FormattersClasses.as
index d9013dc..53b406a 100644
--- a/frameworks/projects/Formatters/src/main/flex/FormattersClasses.as
+++ b/frameworks/projects/Formatters/src/main/flex/FormattersClasses.as
@@ -30,6 +30,9 @@ internal class FormattersClasses
 	import org.apache.flex.core.FormatBase; FormatBase;
 	
 	import org.apache.flex.html.accessories.DateFormatMMDDYYYYBead; DateFormatMMDDYYYYBead;
+	import org.apache.flex.html.accessories.DateFormatDDMMYYYYBead; DateFormatDDMMYYYYBead;
+	import org.apache.flex.html.accessories.DateFormatYYYYMMDDBead; DateFormatYYYYMMDDBead;
+	import org.apache.flex.html.accessories.SimpleDateFormatBead; SimpleDateFormatBead;
 	COMPILE::SWF
 	{
     	import org.apache.flex.html.beads.FormatableLabelView; FormatableLabelView;


[28/43] git commit: [flex-asjs] [refs/heads/dual] - move all code to SimpleDateFormatBead and changed to allow different date formats

Posted by ah...@apache.org.
move all code to SimpleDateFormatBead and changed to allow different date formats


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

Branch: refs/heads/dual
Commit: ee791117cf6fc79e7b329c755342b2623fe828d0
Parents: df2e0fb
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 13:23:31 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 13:23:31 2017 +1000

----------------------------------------------------------------------
 .../html/accessories/DateFormatMMDDYYYYBead.as  | 125 ++-----------------
 1 file changed, 8 insertions(+), 117 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ee791117/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
index 682eaaa..5519eba 100644
--- a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
@@ -18,31 +18,21 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.accessories
 {
-	import org.apache.flex.core.IBead;
-	import org.apache.flex.core.IDateChooserModel;
-	import org.apache.flex.core.IFormatBead;
-	import org.apache.flex.core.IStrand;
-    import org.apache.flex.core.IStrandWithModel;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.EventDispatcher;
-	import org.apache.flex.html.TextInput;
-	import org.apache.flex.html.beads.DateFieldView;
-	
+	import org.apache.flex.html.accessories.SimpleDateFormatBead;
+
 	/**
 	 * The DateFormatBead class formats the display of a DateField using MM/DD/YYYY format.
-	 *  
-     *  @flexjsignoreimport org.apache.flex.core.IStrandWithModel
-     * 
+     *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class DateFormatMMDDYYYYBead extends EventDispatcher implements IBead, IFormatBead
+	public class DateFormatMMDDYYYYBead extends SimpleDateFormatBead
 	{
 		/**
 		 * constructor.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -50,108 +40,9 @@ package org.apache.flex.html.accessories
 		 */
 		public function DateFormatMMDDYYYYBead()
 		{
+			format = "MM/DD/YYYY";
 		}
-		
-		private var _propertyName:String;
-		private var _eventName:String;
-		private var _formattedResult:String;
-		
-		/**
-		 *  The name of the property on the model holding the value to be formatted.
-		 *  The default is selectedDate.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get propertyName():String
-		{
-			if (_propertyName == null) {
-				return "selectedDate";
-			}
-			return _propertyName;
-		}
-		public function set propertyName(value:String):void
-		{
-			_propertyName = value;
-		}
-		
-		/**
-		 *  The name of the event dispatched when the property changes. The
-		 *  default is selectedDateChanged.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get eventName():String
-		{
-			if (_eventName == null) {
-				return _propertyName+"Changed";
-			}
-			return _eventName;
-		}
-		public function set eventName(value:String):void
-		{
-			_eventName = value;
-		}
-		
-		/**
-		 *  The formatted result.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function get formattedString():String
-		{
-			return _formattedResult;
-		}
-		
-		private var _strand:IStrand;
-		
-		/**
-		 *  @copy org.apache.flex.core.IBead#strand
-		 *  
-         *  @flexjsignorecoercion org.apache.flex.core.IStrandWithModel
-         * 
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		public function set strand(value:IStrand):void
-		{
-			_strand = value;
-			
-			var model:IDateChooserModel = IStrandWithModel(_strand).model as IDateChooserModel;
-			model.addEventListener("selectedDateChanged",handleTextChange);
-		}
-		
-		/**
-		 * @private
-         * 
-         * @flexjsignorecoercion org.apache.flex.core.IStrandWithModel
-		 */
-		private function handleTextChange(event:Event):void
-		{
-			var model:IDateChooserModel = IStrandWithModel(_strand).model as IDateChooserModel;
-			
-			var d:Date = model.selectedDate;
-			if (d != null) {
-				var month:String = String(d.getMonth()+1);
-				if (Number(month)<10) month = "0"+month;
-				var date:String = String(d.getDate());
-				if (Number(date)<10) date = "0"+date;
-				var fmt:String = month+"/"+date+"/"+String(d.getFullYear());
-				_formattedResult = month+"/"+date+"/"+String(d.getFullYear());
-				
-				dispatchEvent( new Event("formatChanged") );
-			}
-		}
-		
+
 	}
 }
+


[08/43] git commit: [flex-asjs] [refs/heads/dual] - MobileTrader now displays; still is not completely operational.

Posted by ah...@apache.org.
MobileTrader now displays; still is not completely operational.


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

Branch: refs/heads/dual
Commit: 5cb269d973cfc5df1128dd35c6cad360b17bebc5
Parents: e3cbf4f
Author: Peter Ent <pe...@apache.org>
Authored: Fri Apr 14 16:47:08 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Apr 14 16:47:08 2017 -0400

----------------------------------------------------------------------
 .../src/main/flex/MyInitialView.mxml            | 131 ++++++++++++-------
 .../src/main/flex/views/AlertsView.mxml         |  23 ++--
 .../src/main/flex/views/AssetsView.mxml         |  21 ++-
 .../src/main/flex/views/WatchListView.mxml      |  24 ++--
 .../flex/mobile/beads/StackedViewManagerView.as |   3 +-
 .../flex/mobile/beads/TabbedViewManagerView.as  |   2 +-
 6 files changed, 124 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5cb269d9/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml b/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
index 103b358..70aea67 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
@@ -30,38 +30,28 @@ limitations under the License.
 		@namespace js  "library://ns.apache.org/flexjs/basic";
 		@namespace views  "views.*";
 		
-		js|Container {
-			background-color: #FFFFFF;
-		}
-		
 		js|StackedViewManager {
-			padding-top: 0px;
-			padding-bottom: 0px;
-			padding-left: 0px;
-			padding-right: 0px;
+			background-color: #FFFFFF;
 		}
 		
 		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: 55px;
+			min-height: 55px;
+			flex-grow: 0;
 			IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
 		}
 		
 		.TabBar {
-			background-color: #DEDEDE;
-			height: 55px;
+			height: 40px;
 			vertical-align: middle;
-			line-height: 55px;
+			line-height: 40px;
+			min-height: 40px;
+			flex-grow: 0;
 		}
 		
 		.BackButton:hover {
@@ -76,53 +66,96 @@ limitations under the License.
 			background-image: url('assets/arrow_left_24.png');
 		}
 		
+		/* Assets
+		*/
+		
+		views|AssetsView {
+			padding: 10px;
+			background-color: aliceblue;
+		}
+		
 		.AssetsInner {
 			padding-top: 5px;
 			background-color: #FFFFFF;
 		}
 		
-		views|AssetsView {
-			width: 100%;
-			height: 100%;
+		.AssetsViewTitle {
+			flex-grow: 0;
+			height: 30px;
+			min-height: 30px;
+		}
+		
+		.AssetsViewGrid {
+			flex-grow: 0;
+			min-height: 150px;
+			border: solid 1px #333333;
+		}
+		
+		.AssetsViewGrid .midde .DataGridColumnList {
+			border-right: solid 1px #333333;
+			border-left: solid 1px #333333;
+		}
+		
+		.AssetsViewChart {
+			flex-grow: 1;
 		}
 		
+		/* WatchList
+		*/
+		
 		views|WatchListView {
-			width: 100%;
-			height: 100%;
+			padding: 10px;
+			background-color: aliceblue;
 			IBeadController:ClassReference('controller.WatchListController');
-			background-color: #FFFFFF;
 		}
 		
-		.WatchListInner {
-			height: 480px;
-			width:  100%;
-			background-color: #FFFFFF;
+		.WatchListInputArea {
+			flex-grow: 0;
+			height: 40px;
+			min-height: 40px;
 		}
 		
 		.WatchListDataGrid {
-			height: 480px;
-			width:  100%;
+			flex-grow: 1;
+			backgroundColor: #FFFFFF;
+			border: solid 1px #333333;
 		}
 		
-		.WatchListInputArea {
-			background-color: #FFFFFF;
-			width: 480px;
-			height: 25px;
-			padding-top: 5px;
-			padding-bottom: 2px;
+		.WatchListDataGrid .midde .DataGridColumnList {
+			border-right: solid 1px #333333;
+			border-left: solid 1px #333333;
 		}
 		
-		views|StockView {
-			width: 100%;
-			height: 100%;
-		}
+		/* Alerts
+		*/
 		
 		views|AlertsView {
-			width: 100%;
-			height: 100%;
+			padding: 10px;
+			background-color: aliceblue;
 			IBeadController:ClassReference('controller.AlertsViewController');
 		}
 		
+		.AlertsInput {
+			flex-grow: 0;
+			height: 40px;
+			min-height: 40px;
+			backgroundColor: aliceblue;
+		}
+		
+		.AlertsDataGrid {
+			flex-grow: 1;
+			backgroundColor: #FFFFFF;
+			border: solid 1px #333333;
+		}
+		
+		.AlertsDataGrid .midde .DataGridColumnList {
+			border-right: solid 1px #333333;
+			border-left: solid 1px #333333;
+		}
+		
+		/* Supplements
+		 */
+		
 		.redCell {
 			color: #FF0000;
 		}
@@ -208,17 +241,17 @@ limitations under the License.
 			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;
+//				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();
-				}
+//				if (navController.selectedIndex == 1) {
+//					watchListStack.pop();
+//				}
 			}
 		]]>
 	</fx:Script>
@@ -227,7 +260,7 @@ limitations under the License.
 		<js:ViewDataBinding />
 	</js:beads>
 	
-	<js:TabbedViewManager id="navController" width="100%" height="100%" x="0" y="0" viewChanged="tabbedViewChanged(event)">
+	<js:TabbedViewManager id="navController" width="700" height="500" 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>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5cb269d9/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml b/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
index f06dd65..71ddff6 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
@@ -21,7 +21,9 @@ limitations under the License.
 			 title="Alerts"
 				       xmlns:js="library://ns.apache.org/flexjs/basic"
 				       xmlns:local="*"
-				       className="AlertsView" xmlns:renderers="renderers.*">
+					   xmlns:controller="controller.*"
+				       className="AlertsView" 
+					   xmlns:renderers="renderers.*">
 	
 	<fx:Metadata>
 		[Event("next")]
@@ -51,8 +53,12 @@ limitations under the License.
 			}
 		]]>
 	</fx:Script>
+	
+	<js:beads>
+		<js:VerticalFlexLayout />
+	</js:beads>
 		
-	<js:Container x="4" y="10" >
+	<js:Group x="4" y="10" width="100%" className="AlertsInput" >
 		<js:beads>
 			<js:HorizontalLayout />
 		</js:beads>
@@ -62,11 +68,12 @@ limitations under the License.
 		<js:TextInput id="valueField" width="50" />
 		<js:CheckBox text="Higher?" id="higherCheck" />
 		<js:TextButton text="Set" click="onAlertSet()" />
-	</js:Container>
+	</js:Group>
 	
-	<js:DataGrid id="dataGrid" x="0" y="40" width="100%" height="200">
+	<js:DataGrid id="dataGrid" x="0" y="40" width="100%" className="AlertsDataGrid">
 		<js:beads>
-			<js:DataProviderChangeNotifier sourceID="dataModel" propertyName="alerts" />
+			<js:DataGridPercentageView />
+			<!--<controller:DataModelChangeNotifier />-->
 			<js:SimpleBinding
 				eventName="alertsUpdate"
 				sourceID="dataModel"
@@ -74,21 +81,21 @@ limitations under the License.
 				destinationPropertyName="dataProvider" />
 		</js:beads>
 		<js:columns>
-			<js:DataGridColumn label="Symbol" dataField="symbol">
+			<js:DataGridColumn label="Symbol" dataField="symbol" columnWidth="50">
 				<js:itemRenderer>
 					<fx:Component>
 						<js:StringItemRenderer />
 					</fx:Component>
 				</js:itemRenderer>
 			</js:DataGridColumn>
-			<js:DataGridColumn label="Alert" dataField="greaterThan">
+			<js:DataGridColumn label="Alert" dataField="greaterThan" columnWidth="25">
 				<js:itemRenderer>
 					<fx:Component>
 						<renderers:AlertRenderer />
 					</fx:Component>
 				</js:itemRenderer>
 			</js:DataGridColumn>
-			<js:DataGridColumn label="Message" dataField="message">
+			<js:DataGridColumn label="Message" dataField="message" columnWidth="25">
 				<js:itemRenderer>
 					<fx:Component>
 						<js:StringItemRenderer />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5cb269d9/examples/flexjs/MobileTrader/src/main/flex/views/AssetsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/views/AssetsView.mxml b/examples/flexjs/MobileTrader/src/main/flex/views/AssetsView.mxml
index 2929a3e..1d5bd2e 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/views/AssetsView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/views/AssetsView.mxml
@@ -34,35 +34,34 @@ limitations under the License.
 	</fx:Metadata>
 	
 	<js:beads>
-		<js:VerticalLayout />
+		<js:VerticalFlexLayout />
 	</js:beads>
 	
 	<js:model>
 		<models:AssetsModel />
 	</js:model>
 
-	<js:Label text="Summary" height="10%" />
+	<js:Label text="Summary" className="AssetsViewTitle" />
 	
-	<js:DataGrid height="150" width="100%">
-		<js:style>
-			<js:SimpleCSSStyles top="0" left="0" right="0" />
-		</js:style>
+	<js:DataGrid height="150" width="100%" className="AssetsViewGrid">
 		<js:beads>
+			<js:DataGridPercentageView />
 			<js:ConstantBinding
 				sourceID="model"
 				sourcePropertyName="assetsData"
 				destinationPropertyName="dataProvider" />
 		</js:beads>
 		<js:columns>
-			<js:DataGridColumn label="Type" dataField="label" />
-			<js:DataGridColumn label="Value" dataField="value" />
-			<js:DataGridColumn label="Change" dataField="netChange" />
+			<js:DataGridColumn label="Type" dataField="label" columnWidth="50" />
+			<js:DataGridColumn label="Value" dataField="value" columnWidth="25" />
+			<js:DataGridColumn label="Change" dataField="netChange" columnWidth="25" />
 		</js:columns>
 	</js:DataGrid>
 		
-	<js:Label text="Performance History" height="10%" />
+	<js:Spacer height="10" />
+	<js:Label text="Performance History" className="AssetsViewTitle" />
 		
-	<js:BarChart id="barChart" width="100%" height="40%">
+	<js:BarChart id="barChart" className="AssetsViewChart" >
 		<js:beads>
 			<js:ConstantBinding
 				sourceID="model"

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5cb269d9/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml b/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
index aa9da04..3b84f34 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
@@ -89,20 +89,24 @@ limitations under the License.
 	</fx:Script>
 	
 	<js:beads>
-		<js:VerticalLayout />
+		<js:VerticalFlexLayout />
 	</js:beads>
 	
-	<js:HContainer className="WatchListInputArea" width="100%" height="10%">
+	<js:Group width="100%" className="WatchListInputArea" >
+		<js:beads>
+			<js:HorizontalLayout />
+		</js:beads>
 		<js:Label text="Symbol:" />
 		<js:TextInput id="symbolName" />
 		<js:TextButton text="Add" click="addSymbol()" />
-	</js:HContainer>
+	</js:Group>
 	
 	<js:Spacer height="10" />
 		
-	<js:DataGrid id="dataGrid" width="100%" height="85%" change="selectRow()" className="WatchListDataGrid">
+	<js:DataGrid id="dataGrid" width="100%" change="selectRow()" className="WatchListDataGrid">
 		<js:beads>
-			<js:DataProviderChangeNotifier sourceID="dataModel" propertyName="watchList" />
+			<!--<controller:DataModelChangeNotifier />-->
+			<js:DataGridPercentageView />
 			<js:SimpleBinding
 				eventName="update"
 				sourceID="dataModel"
@@ -110,35 +114,35 @@ limitations under the License.
 				destinationPropertyName="dataProvider" />
 		</js:beads>
 		<js:columns>
-			<js:DataGridColumn label="Symbol" dataField="symbol">
+			<js:DataGridColumn label="Symbol" dataField="symbol" columnWidth="20">
 				<js:itemRenderer>
 					<fx:Component>
 						<js:StringItemRenderer />
 					</fx:Component>
 				</js:itemRenderer>
 			</js:DataGridColumn>
-			<js:DataGridColumn label="Open" dataField="open">
+			<js:DataGridColumn label="Open" dataField="open" columnWidth="20">
 				<js:itemRenderer>
 					<fx:Component>
 						<renderers:StockRenderer />
 					</fx:Component>
 				</js:itemRenderer>
 			</js:DataGridColumn>
-			<js:DataGridColumn label="Last" dataField="last" >
+			<js:DataGridColumn label="Last" dataField="last" columnWidth="20" >
 				<js:itemRenderer>
 					<fx:Component>
 						<renderers:StockRenderer />
 					</fx:Component>
 				</js:itemRenderer>
 			</js:DataGridColumn>
-			<js:DataGridColumn label="High" dataField="high" >
+			<js:DataGridColumn label="High" dataField="high" columnWidth="20" >
 				<js:itemRenderer>
 					<fx:Component>
 						<renderers:StockRenderer />
 					</fx:Component>
 				</js:itemRenderer>
 			</js:DataGridColumn>
-			<js:DataGridColumn label="Low" dataField="low" >
+			<js:DataGridColumn label="Low" dataField="low" columnWidth="20" >
 				<js:itemRenderer>
 					<fx:Component>
 						<renderers:StockRenderer />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5cb269d9/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
index a500c12..c2c8837 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -153,7 +153,8 @@ package org.apache.flex.mobile.beads
 			}
 			_topView = model.views[index] as IViewManagerView;
 			_topView.viewManager = _strand as IViewManager;
-			UIBase(_strand).addElementAt(_topView,1);
+			
+			UIBase(_strand).addElementAt(_topView,(navigationBar == null ? 0 : 1));
 			
 			COMPILE::JS {
 				if (_topView) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5cb269d9/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
index 4ee3a5a..cd60094 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -120,7 +120,7 @@ package org.apache.flex.mobile.beads
 			}
 			_currentView = model.views[index] as IViewManagerView;
 			_currentView.viewManager = _strand as IViewManager;
-			UIBase(_strand).addElementAt(_currentView,1);
+			UIBase(_strand).addElementAt(_currentView,(navigationBar == null ? 0 : 1));
 			
 			COMPILE::JS {
 				if (_currentView) {


[14/43] git commit: [flex-asjs] [refs/heads/dual] - add some comment and missing semicolon

Posted by ah...@apache.org.
add some comment and missing semicolon


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

Branch: refs/heads/dual
Commit: fe1ff661a4831ce0c00454fce9df478716b24f39
Parents: 242fb73
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:40:28 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:40:28 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/net/HTTPUtils.as   | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fe1ff661/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPUtils.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPUtils.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPUtils.as
index fab6fdc..e38c566 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPUtils.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPUtils.as
@@ -20,9 +20,26 @@ package org.apache.flex.net
 {
     public class HTTPUtils
     {
+        /**
+         *  HTTP utility methods.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
         public function HTTPUtils()
         {
         }
+
+        /**
+         *  Encode URL variables.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
 		public static function encodeUrlVariables(data:Object):String
         {
             if(!data)
@@ -37,7 +54,7 @@ package org.apache.flex.net
                 b.push("&");
             }
             if(b.length)
-                b.pop()
+                b.pop();
             return b.join("");
         }
 		


[17/43] git commit: [flex-asjs] [refs/heads/dual] - fill in missing comments

Posted by ah...@apache.org.
fill in missing comments


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

Branch: refs/heads/dual
Commit: 198ae7c8952224f4944648965812075eab6adffa
Parents: c57d775
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:41:38 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:41:38 2017 +1000

----------------------------------------------------------------------
 .../src/main/flex/org/apache/flex/net/URLRequestHeader.as   | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/198ae7c8/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
index 9680764..be129f2 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequestHeader.as
@@ -50,7 +50,14 @@ package org.apache.flex.net
         public var value:String;
 		
 		
-        
+		/**
+		 *  Set the name and value of a URL request header.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.7.0
+		 */
         public function URLRequestHeader(name:String, value:String)
         {
 			this.name = name;


[23/43] git commit: [flex-asjs] [refs/heads/dual] - add license

Posted by ah...@apache.org.
add license


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

Branch: refs/heads/dual
Commit: f4dde33e402e16940e5ac4c1a2a1a5b65150c48a
Parents: 9e4b62d
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 16:07:59 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 16:07:59 2017 +1000

----------------------------------------------------------------------
 .../apache/flex/net/beads/CORSCredentialsBead.as | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f4dde33e/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
index 6a44c90..be02408 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
@@ -1,3 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.net.beads {
 import org.apache.flex.core.IBead;
 import org.apache.flex.core.IStrand;


[11/43] git commit: [flex-asjs] [refs/heads/dual] - use header constants

Posted by ah...@apache.org.
use header constants


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

Branch: refs/heads/dual
Commit: 318bdf2a8cb4e0527fe9a2150b56e44a0be8cf1a
Parents: 159abcc
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:39:18 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:39:18 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/net/BinaryUploader.as | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/318bdf2a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
index 035f753..31854c4 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/BinaryUploader.as
@@ -589,8 +589,8 @@ package org.apache.flex.net
                 }
                 
                 if (binaryData) {
-                    element.setRequestHeader('Content-length', binaryData.length.toString());
-                    element.setRequestHeader('Connection', 'close');
+                    element.setRequestHeader(HTTPHeader.CONTENT_LENGTH, binaryData.length.toString());
+                    element.setRequestHeader(HTTPHeader.CONNECTION, 'close');
                     element.send(binaryData);
                 } else {
                     element.send();
@@ -641,9 +641,9 @@ package org.apache.flex.net
          *  @productversion FlexJS 0.0
          */        
         COMPILE::SWF
-        protected function completeHandler(event:flash.events.Event):void
-        {
-            dispatchEvent(new Event(event.type));
+        protected function completeHandler(event:flash.events.Event):void
+        {
+            dispatchEvent(new Event(event.type));
         }
         
         /**
@@ -655,10 +655,10 @@ package org.apache.flex.net
             var element:XMLHttpRequest = this.element as XMLHttpRequest;
             if (element.readyState === 2) {
                 _status = element.status;
-                dispatchEvent('httpResponseStatus');
-                dispatchEvent('httpStatus');
+                dispatchEvent(HTTPConstants.RESPONSE_STATUS);
+                dispatchEvent(HTTPConstants.STATUS);
             } else if (element.readyState === 4) {
-                dispatchEvent('complete');
+                dispatchEvent(HTTPConstants.COMPLETE);
             }
         }
         


[37/43] git commit: [flex-asjs] [refs/heads/dual] - Enables side borders on SWF platform.

Posted by ah...@apache.org.
Enables side borders on SWF platform.


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

Branch: refs/heads/dual
Commit: b1ba88e8f618894463e34d4f84060acc9daef268
Parents: 8a23e1e
Author: Peter Ent <pe...@apache.org>
Authored: Tue Apr 18 09:35:21 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Tue Apr 18 09:35:21 2017 -0400

----------------------------------------------------------------------
 .../org/apache/flex/html/beads/DataGridView.as  |  2 +-
 .../org/apache/flex/html/beads/GroupView.as     | 23 ++++++++++++++++----
 2 files changed, 20 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b1ba88e8/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataGridView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataGridView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataGridView.as
index 68e5d95..3b387d9 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataGridView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataGridView.as
@@ -134,7 +134,7 @@ package org.apache.flex.html.beads
 					_listArea.element.style["flex-grow"] = "1";
 				}
 				
-				IEventDispatcher(_strand).addEventListener("initComplete", finishSetup);
+				IEventDispatcher(_strand).addEventListener("beadsAdded", finishSetup);
 			}
 			
 			/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b1ba88e8/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
index acd805d..2a982c2 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
@@ -304,26 +304,41 @@ package org.apache.flex.html.beads
 					host.addBead( new c() as IBead );
 				}
 			}
-
+			
+			if (setupForBorder(host, "border")) return;
+			if (setupForBorder(host, "border-top")) return;
+			if (setupForBorder(host, "border-bottom")) return;
+			if (setupForBorder(host, "border-left")) return;
+			if (setupForBorder(host, "border-right")) return;
+		}
+		
+		COMPILE::SWF
+		protected function setupForBorder(host:UIBase, borderType:String):Boolean
+		{
+			var result:Boolean = false;
+			
 			var borderStyle:String;
-			var borderStyles:Object = ValuesManager.valuesImpl.getValue(host, "border");
+			var borderStyles:Object = ValuesManager.valuesImpl.getValue(host, borderType);
 			if (borderStyles is Array)
 			{
 				borderStyle = borderStyles[1];
 			}
 			if (borderStyle == null)
 			{
-				borderStyle = ValuesManager.valuesImpl.getValue(host, "border-style") as String;
+				borderStyle = ValuesManager.valuesImpl.getValue(host, borderType+"-style") as String;
 			}
 			if (borderStyle != null && borderStyle != "none")
 			{
 				if (host.getBeadByType(IBorderBead) == null) {
-					c = ValuesManager.valuesImpl.getValue(host, "iBorderBead");
+					var c:Class = ValuesManager.valuesImpl.getValue(host, "iBorderBead");
 					if (c) {
 						host.addBead( new c() as IBead );
+						result = true;
 					}
 				}
 			}
+			
+			return result;
 		}
 	}
 }


[10/43] git commit: [flex-asjs] [refs/heads/dual] - MobileTrader nearly back to full function.

Posted by ah...@apache.org.
MobileTrader nearly back to full function.


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

Branch: refs/heads/dual
Commit: 159abcc9cc728108863be1bc07d3175711a4fd00
Parents: a005b67
Author: Peter Ent <pe...@apache.org>
Authored: Sat Apr 15 08:32:58 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Sat Apr 15 08:32:58 2017 -0400

----------------------------------------------------------------------
 examples/flexjs/MobileTrader/build.xml          | 17 ++++-
 .../src/main/flex/MobileTrader.mxml             |  3 +
 .../src/main/flex/MyInitialView.mxml            |  8 ++-
 .../flex/controller/DataModelChangeNotifier.as  | 71 ++++++++++++++++++++
 .../src/main/flex/views/AlertsView.mxml         |  2 +-
 .../src/main/flex/views/WatchListView.mxml      |  2 +-
 6 files changed, 99 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/159abcc9/examples/flexjs/MobileTrader/build.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/build.xml b/examples/flexjs/MobileTrader/build.xml
index cb69a25..81fd570 100644
--- a/examples/flexjs/MobileTrader/build.xml
+++ b/examples/flexjs/MobileTrader/build.xml
@@ -48,7 +48,22 @@
     </condition>
     <property name="extlib_arg" value="-external-library-path=${FALCONJX_HOME}/../externs/js/out/bin/js.swc"/>
 
-    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
+    <target name="main" depends="clean,build_example.compile,build_example.compilejs,copyassets" description="Clean build of ${example}">
+    </target>
+    
+    <target name="copyassets">
+    	<mkdir dir="${basedir}/bin/js-debug/assets" />
+    	<copy todir="${basedir}/bin/js-debug/assets" >
+            <fileset dir="${basedir}/src/main/resources/assets">
+                <include name="**" />
+            </fileset>
+        </copy>
+        <mkdir dir="${basedir}/bin/js-release/assets" />
+        <copy todir="${basedir}/bin/js-release/assets" >
+            <fileset dir="${basedir}/src/main/resources/assets">
+                <include name="**" />
+            </fileset>
+        </copy>
     </target>
     
     <target name="clean">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/159abcc9/examples/flexjs/MobileTrader/src/main/flex/MobileTrader.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/MobileTrader.mxml b/examples/flexjs/MobileTrader/src/main/flex/MobileTrader.mxml
index c76531c..47acaeb 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/MobileTrader.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/MobileTrader.mxml
@@ -24,6 +24,9 @@
 				   xmlns:js="library://ns.apache.org/flexjs/basic" 
 				   xmlns:controller="controller.*" 
 				   >
+	<js:beads>
+		<js:DeviceSizeBead />
+	</js:beads>
 	
 	<js:valuesImpl>
 		<js:SimpleCSSValuesImpl />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/159abcc9/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml b/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
index 70aea67..2357600 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/MyInitialView.mxml
@@ -38,6 +38,11 @@ limitations under the License.
 			background-color: #FFFFFF;
 		}
 		
+		.StringItemRenderer {
+			padding-left: 4px;
+			padding-top: 2px;
+		}
+		
 		.NavigationBar {
 			background-image: url("assets/background.png");
 			height: 55px;
@@ -225,6 +230,7 @@ limitations under the License.
 			
 			private function onInitComplete():void
 			{
+				
 			}
 			
 			private function onAssetsNext():void
@@ -260,7 +266,7 @@ limitations under the License.
 		<js:ViewDataBinding />
 	</js:beads>
 	
-	<js:TabbedViewManager id="navController" width="700" height="500" x="0" y="0" viewChanged="tabbedViewChanged(event)">
+	<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>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/159abcc9/examples/flexjs/MobileTrader/src/main/flex/controller/DataModelChangeNotifier.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/controller/DataModelChangeNotifier.as b/examples/flexjs/MobileTrader/src/main/flex/controller/DataModelChangeNotifier.as
new file mode 100644
index 0000000..a6e2e19
--- /dev/null
+++ b/examples/flexjs/MobileTrader/src/main/flex/controller/DataModelChangeNotifier.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 controller
+{	
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.events.CollectionEvent;
+	
+	public class DataModelChangeNotifier extends EventDispatcher implements IBead
+	{
+		public function DataModelChangeNotifier()
+		{
+			super();
+		}
+		
+		private var _strand:IStrand;
+		private var _propertyName:String = "dataProvider";
+		
+		public function get propertyName():String
+		{
+			return _propertyName;
+		}
+		public function set propertyName(value:String):void
+		{
+			_propertyName = value;
+		}
+		
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			
+			IEventDispatcher(_strand).addEventListener("initBindings", handleInitBindings);
+		}
+		
+		private function handleInitBindings(event:Event):void
+		{
+			var model:Object = _strand.getBeadByType(IBeadModel) as Object;
+			var property:IEventDispatcher = model[propertyName] as IEventDispatcher;
+			
+			property.addEventListener(CollectionEvent.ITEM_ADDED, handleModelChanges);
+			property.addEventListener(CollectionEvent.ITEM_REMOVED, handleModelChanges);
+			property.addEventListener(CollectionEvent.ITEM_UPDATED, handleModelChanges);
+		}
+		
+		private function handleModelChanges(event:CollectionEvent):void
+		{
+			var model:IEventDispatcher = _strand.getBeadByType(IBeadModel) as IEventDispatcher;
+			model.dispatchEvent(new Event("dataProviderChanged"));
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/159abcc9/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml b/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
index 71ddff6..fbb96e0 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/views/AlertsView.mxml
@@ -73,7 +73,7 @@ limitations under the License.
 	<js:DataGrid id="dataGrid" x="0" y="40" width="100%" className="AlertsDataGrid">
 		<js:beads>
 			<js:DataGridPercentageView />
-			<!--<controller:DataModelChangeNotifier />-->
+			<controller:DataModelChangeNotifier />
 			<js:SimpleBinding
 				eventName="alertsUpdate"
 				sourceID="dataModel"

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/159abcc9/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml b/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
index 3b84f34..f08da21 100755
--- a/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
+++ b/examples/flexjs/MobileTrader/src/main/flex/views/WatchListView.mxml
@@ -105,7 +105,7 @@ limitations under the License.
 		
 	<js:DataGrid id="dataGrid" width="100%" change="selectRow()" className="WatchListDataGrid">
 		<js:beads>
-			<!--<controller:DataModelChangeNotifier />-->
+			<controller:DataModelChangeNotifier />
 			<js:DataGridPercentageView />
 			<js:SimpleBinding
 				eventName="update"


[22/43] git commit: [flex-asjs] [refs/heads/dual] - Added bead to pass authorisation credentials on in JS HTTP requests

Posted by ah...@apache.org.
Added bead to pass authorisation credentials on in JS HTTP requests


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

Branch: refs/heads/dual
Commit: 9e4b62d435e3f3166ce710e551c6e78100f88df6
Parents: 65320f9
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 15:41:15 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 15:41:15 2017 +1000

----------------------------------------------------------------------
 .../flex/net/beads/CORSCredentialsBead.as       | 79 ++++++++++++++++++++
 1 file changed, 79 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9e4b62d4/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
new file mode 100644
index 0000000..6a44c90
--- /dev/null
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
@@ -0,0 +1,79 @@
+package org.apache.flex.net.beads {
+import org.apache.flex.core.IBead;
+import org.apache.flex.core.IStrand;
+import org.apache.flex.events.Event;
+import org.apache.flex.events.IEventDispatcher;
+
+COMPILE::SWF
+public class CORSCredentialsBead {
+    public function CORSCredentialsBead(withCredentials:Boolean = false) {
+        trace("Only needed for JavaScript HTTP Server calls");
+    }
+}
+
+/**
+ *  Bead to allow passing on user authentication information in a XMLHttpRequest request.
+ *
+ *  If you don't use this bead any cross domain calls that require user authentication
+ *  (via say basic authentication or cookies) will fail.
+ *
+ *  @productversion FlexJS 0.8
+ */
+COMPILE::JS
+public class CORSCredentialsBead implements IBead {
+
+    public function CORSCredentialsBead(withCredentials:Boolean = false) {
+        this.withCredentials = withCredentials;
+    }
+
+    private var _strand:IStrand;
+
+    /**
+     *  Listen for a pre and post send event to modify if user credentials are passed.
+     *
+     *  @productversion FlexJS 0.8
+     */
+    public function set strand(value:IStrand):void {
+        _strand = value;
+
+        IEventDispatcher(_strand).addEventListener("preSend", preSendHandler);
+        IEventDispatcher(_strand).addEventListener("postSend", postSendHandler);
+    }
+
+    /**
+     *  Modify the HTTP request to pass credentials.
+     *
+     *  @productversion FlexJS 0.8
+     */
+    protected function preSendHandler(event:Event):void {
+        (event.target.element as XMLHttpRequest).withCredentials = withCredentials;
+    }
+
+    /**
+     *  Clean up event listeners.
+     *
+     *  @productversion FlexJS 0.8
+     */
+    protected function postSendHandler(event:Event):void {
+        IEventDispatcher(_strand).removeEventListener("preSend", preSendHandler);
+        IEventDispatcher(_strand).removeEventListener("postSend", preSendHandler);
+    }
+
+    private var _withCredentials:Boolean = false;
+
+    /**
+     *  Pass the user credentials or not.
+     *
+     *  @productversion FlexJS 0.8
+     */
+    public function get withCredentials():Boolean
+    {
+        return _withCredentials;
+    }
+
+    public function set withCredentials(value:Boolean):void
+    {
+        _withCredentials = value;
+    }
+}
+}


[12/43] git commit: [flex-asjs] [refs/heads/dual] - add constants currently used by code

Posted by ah...@apache.org.
add constants currently used by code


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

Branch: refs/heads/dual
Commit: 4d09ccf5abd481f7ef6a01f95ed8072a75da073d
Parents: 318bdf2
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:39:47 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:39:47 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/net/HTTPHeader.as | 23 +++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4d09ccf5/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPHeader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPHeader.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPHeader.as
index 05c8760..17fc7ae 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPHeader.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPHeader.as
@@ -30,7 +30,7 @@ package org.apache.flex.net
 	{
         /**
          *  The Content-type header.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -38,6 +38,27 @@ package org.apache.flex.net
          */
 		public static const CONTENT_TYPE:String = "Content-type";
 
+		/**
+		 *  The Content-length header.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public static const CONTENT_LENGTH:String = "Content-length";
+
+
+		/**
+		 *  The Connection header.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public static const CONNECTION:String = "Connection";
+
         /**
          *  Constructor.
          *  


[33/43] git commit: [flex-asjs] [refs/heads/dual] - update FlexJS version number

Posted by ah...@apache.org.
update FlexJS version number


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

Branch: refs/heads/dual
Commit: 313e900e5aa56b94d967c6fc3c71b4a1d9dc2630
Parents: e8be4fc
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 14:47:44 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 14:47:44 2017 +1000

----------------------------------------------------------------------
 .../org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as   | 4 ++--
 .../org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as   | 4 ++--
 .../org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as   | 4 ++--
 3 files changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/313e900e/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
index 3af9332..adc62cc 100644
--- a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatDDMMYYYYBead.as
@@ -26,7 +26,7 @@ package org.apache.flex.html.accessories
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
+	 *  @productversion FlexJS 0.8
 	 */
 	public class DateFormatDDMMYYYYBead extends SimpleDateFormatBead
 	{
@@ -36,7 +36,7 @@ package org.apache.flex.html.accessories
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
+		 *  @productversion FlexJS 0.8
 		 */
 		public function DateFormatDDMMYYYYBead()
 		{

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/313e900e/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
index 5519eba..7bed798 100644
--- a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatMMDDYYYYBead.as
@@ -26,7 +26,7 @@ package org.apache.flex.html.accessories
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
+	 *  @productversion FlexJS 0.8
 	 */
 	public class DateFormatMMDDYYYYBead extends SimpleDateFormatBead
 	{
@@ -36,7 +36,7 @@ package org.apache.flex.html.accessories
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
+		 *  @productversion FlexJS 0.8
 		 */
 		public function DateFormatMMDDYYYYBead()
 		{

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/313e900e/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
index ac0fe28..649b2a6 100644
--- a/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
+++ b/frameworks/projects/Formatters/src/main/flex/org/apache/flex/html/accessories/DateFormatYYYYMMDDBead.as
@@ -26,7 +26,7 @@ package org.apache.flex.html.accessories
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
+	 *  @productversion FlexJS 0.8
 	 */
 	public class DateFormatYYYYMMDDBead extends SimpleDateFormatBead
 	{
@@ -36,7 +36,7 @@ package org.apache.flex.html.accessories
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
+         *  @productversion FlexJS 0.8
          */
         public function DateFormatYYYYMMDDBead()
 		{


[09/43] git commit: [flex-asjs] [refs/heads/dual] - Removed unnecessary functions.

Posted by ah...@apache.org.
Removed unnecessary functions.


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

Branch: refs/heads/dual
Commit: a005b6753d53097f544affe7b1b964d9573958de
Parents: 5cb269d
Author: Peter Ent <pe...@apache.org>
Authored: Sat Apr 15 08:31:51 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Sat Apr 15 08:31:51 2017 -0400

----------------------------------------------------------------------
 .../flex/org/apache/flex/charts/beads/ChartView.as  | 16 ----------------
 .../org/apache/flex/html/beads/DataContainerView.as |  4 +---
 2 files changed, 1 insertion(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a005b675/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
index 2dd7d81..8eaeb65 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
@@ -81,22 +81,6 @@ package org.apache.flex.charts.beads
 		
 		/**
 		 * @private
-		 * @flexjsignorecoercion org.apache.flex.core.IChild
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.0
-		 */
-		override protected function completeSetup():void
-		{	
-			super.completeSetup();
-			
-			performLayout(null);
-		}
-		
-		/**
-		 * @private
 		 */
 		override protected function beadsAddedHandler(event:Event):void
 		{

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a005b675/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
index 6d1eae5..fc5f3a2 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
@@ -205,7 +205,6 @@ package org.apache.flex.html.beads
 		 */
 		protected function itemsCreatedHandler(event:Event):void
 		{
-			trace("DataContainerView: itemsCreatedHandler");
 			host.dispatchEvent(new Event("layoutNeeded"));
 		}
 		
@@ -214,8 +213,7 @@ package org.apache.flex.html.beads
 		 */
 		protected function dataProviderChangeHandler(event:Event):void
 		{
-			trace("DataContainerView: dataProviderChangeHandler");
-			performLayout(event);
+			host.dispatchEvent(new Event("layoutNeeded"));
 		}
 		        
         /**


[19/43] git commit: [flex-asjs] [refs/heads/dual] - add JS only CORSCredentialsBead

Posted by ah...@apache.org.
add JS only CORSCredentialsBead


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

Branch: refs/heads/dual
Commit: 3fa62e72959b6fb09e02e707d628bf29c07221ba
Parents: 350e1f0
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 13:21:47 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 13:21:47 2017 +1000

----------------------------------------------------------------------
 frameworks/projects/Network/src/main/flex/NetworkClasses.as | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/3fa62e72/frameworks/projects/Network/src/main/flex/NetworkClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/NetworkClasses.as b/frameworks/projects/Network/src/main/flex/NetworkClasses.as
index a649df0..e4cd570 100644
--- a/frameworks/projects/Network/src/main/flex/NetworkClasses.as
+++ b/frameworks/projects/Network/src/main/flex/NetworkClasses.as
@@ -22,13 +22,17 @@ package
 /**
  *  @private
  *  This class is used to link additional classes into rpc.swc
- *  beyond those that are found by dependecy analysis starting
+ *  beyond those that are found by dependency analysis starting
  *  from the classes specified in manifest.xml.
  */
 internal class NetworkClasses
 {	
     import org.apache.flex.net.URLBinaryLoader; URLBinaryLoader;
 	import org.apache.flex.net.HTTPConstants; HTTPConstants;
+
+    COMPILE::JS {
+        import org.apache.flex.net.beads.CORSCredentialsBead; CORSCredentialsBead;
+    }
 }
 
 }


[39/43] git commit: [flex-asjs] [refs/heads/dual] - Merge branch 'develop' into dual

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --cc frameworks/projects/HTML/src/main/resources/basic-manifest.xml
index 3d60024,4778ae8..4a47ba4
--- a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
@@@ -21,8 -21,140 +21,6 @@@
  
  <componentPackage>
  
 -    <component id="Application" class="org.apache.flex.core.Application"/>
 -    <component id="View" class="org.apache.flex.core.View"/>
 -    <component id="Button" class="org.apache.flex.html.Button"/>
 -    <component id="CloseButton" class="org.apache.flex.html.CloseButton"/>
 -    <component id="ButtonBar" class="org.apache.flex.html.ButtonBar"/>
 -    <component id="DropDownList" class="org.apache.flex.html.DropDownList"/>
 -    <component id="DropDownListList" class="org.apache.flex.html.supportClasses.DropDownListList"/>
 -    <component id="Image" class="org.apache.flex.html.Image"/>
 -    <component id="BinaryImage" class="org.apache.flex.html.BinaryImage"/>
 -    <component id="Label" class="org.apache.flex.html.Label"/>
--	<component id="HTMLText" class="org.apache.flex.html.HTMLText"/>
 -    <component id="MultilineLabel" class="org.apache.flex.html.MultilineLabel"/>
 -    <component id="ImageAndTextButton" class="org.apache.flex.html.ImageAndTextButton"/>
 -    <component id="TextButton" class="org.apache.flex.html.TextButton"/>
 -    <component id="ToggleTextButton" class="org.apache.flex.html.ToggleTextButton"/>
 -    <component id="TextInput" class="org.apache.flex.html.TextInput"/>
 -    <component id="TextArea" class="org.apache.flex.html.TextArea"/>
 -    <component id="DataContainer" class="org.apache.flex.html.DataContainer"/>
 -    <component id="List" class="org.apache.flex.html.List"/>
 -    <component id="SimpleList" class="org.apache.flex.html.SimpleList"/>
 -    <component id="CheckBox" class="org.apache.flex.html.CheckBox"/>
 -    <component id="CSSCheckBox" class="org.apache.flex.html.CSSCheckBox"/>
 -    <component id="RadioButton" class="org.apache.flex.html.RadioButton"/>
 -    <component id="ComboBox" class="org.apache.flex.html.ComboBox"/>
 -    <component id="ComboBoxList" class="org.apache.flex.html.supportClasses.ComboBoxList"/>
 -    <component id="Container" class="org.apache.flex.html.Container"/>
 -    <component id="Group" class="org.apache.flex.html.Group"/>
 -    <component id="Accordion" class="org.apache.flex.html.Accordion"/>
 -    <component id="Form" class="org.apache.flex.html.Form"/>
 -    <component id="HContainer" class="org.apache.flex.html.HContainer"/>
 -    <component id="VContainer" class="org.apache.flex.html.VContainer"/>
 -    <component id="Panel" class="org.apache.flex.html.Panel"/>
 -    <component id="PanelView" class="org.apache.flex.html.beads.PanelView"/>
 -    <component id="ImageView" class="org.apache.flex.html.beads.ImageView"/>
 -    <component id="PanelWithControlBar" class="org.apache.flex.html.PanelWithControlBar"/>
 -    <component id="PanelWithControlBarView" class="org.apache.flex.html.beads.PanelWithControlBarView"/>
 -    <component id="ControlBar" class="org.apache.flex.html.ControlBar"/>
 -    <component id="RangeStepper" class="org.apache.flex.html.RangeStepper" />
 -    <component id="TitleBar" class="org.apache.flex.html.TitleBar"/>
 -    <component id="ImageModel" class="org.apache.flex.html.beads.models.ImageModel"/>
 -    <component id="TitleBarModel" class="org.apache.flex.html.beads.models.TitleBarModel"/>
 -    <component id="ToolTip" class="org.apache.flex.html.ToolTip"/>
 -    <component id="Tree" class="org.apache.flex.html.Tree"/>
 -    <component id="BasicLayout" class="org.apache.flex.html.beads.layouts.BasicLayout"/>
 -    <component id="VerticalLayout" class="org.apache.flex.html.beads.layouts.VerticalLayout"/>
 -    <component id="VerticalFlexLayout" class="org.apache.flex.html.beads.layouts.VerticalFlexLayout"/>
 -    <component id="HorizontalLayout" class="org.apache.flex.html.beads.layouts.HorizontalLayout"/>
 -    <component id="HorizontalFlexLayout" class="org.apache.flex.html.beads.layouts.HorizontalFlexLayout"/>
 -    <component id="HorizontalFlowLayout" class="org.apache.flex.html.beads.layouts.HorizontalFlowLayout" />
 -    <component id="TileLayout" class="org.apache.flex.html.beads.layouts.TileLayout"/>
 -    <component id="ListView" class="org.apache.flex.html.beads.ListView"/>
 -    <component id="AccordionView" class="org.apache.flex.html.beads.AccordionView"/>
 -    <component id="CenterElement" class="org.apache.flex.html.beads.CenterElement"/>
 -    <!--<component id="MultilineTextFieldView" class="org.apache.flex.html.beads.MultilineTextFieldView"/>-->
 -    
 -    <component id="SimpleAlert" class="org.apache.flex.html.SimpleAlert"/>
 -    <component id="Alert" class="org.apache.flex.html.Alert"/>
 -    <component id="Spinner" class="org.apache.flex.html.Spinner"/>
 -    <component id="Slider" class="org.apache.flex.html.Slider"/>
 -    <component id="NumericStepper" class="org.apache.flex.html.NumericStepper" />
 -    <component id="StringItemRenderer" class="org.apache.flex.html.supportClasses.StringItemRenderer"/>
 -    <component id="AccordionItemRenderer" class="org.apache.flex.html.supportClasses.AccordionItemRenderer"/>
 -    <component id="AccordionCollapseBead" class="org.apache.flex.html.beads.AccordionCollapseBead"/>
 -    <component id="DispatchInputFinishedBead" class="org.apache.flex.html.beads.DispatchInputFinishedBead"/>
 -    <component id="DispatchKeyboardEventBead" class="org.apache.flex.html.beads.DispatchKeyboardEventBead"/>
 -    <component id="TreeItemRenderer" class="org.apache.flex.html.supportClasses.TreeItemRenderer"/>
 -    <component id="DataItemRenderer" class="org.apache.flex.html.supportClasses.DataItemRenderer"/>
 -    <component id="MXMLItemRenderer" class="org.apache.flex.html.supportClasses.MXMLItemRenderer"/>
 -    <component id="DateItemRenderer" class="org.apache.flex.html.supportClasses.DateItemRenderer"/>
 -    <component id="DayNameItemRenderer" class="org.apache.flex.html.supportClasses.DayNameItemRenderer"/>
 -    <component id="TextButtonItemRenderer" class="org.apache.flex.html.supportClasses.TextButtonItemRenderer"/>
 -    <!--
 -     <component id="TextFieldItemRenderer" class="org.apache.flex.html.supportClasses.TextFieldItemRenderer"/>
 -    <component id="HScrollBar" class="org.apache.flex.html.supportClasses.HScrollBar"/>
 -    <component id="VScrollBar" class="org.apache.flex.html.supportClasses.VScrollBar"/>
 -     <component id="HRuleView" class="org.apache.flex.html.beads.HRuleView" />
 -     <component id="VRuleView" class="org.apache.flex.html.beads.VRuleView" />
 -     -->
 -    <component id="UnselectableElementBead" class="org.apache.flex.html.beads.UnselectableElementBead"/>
 -    <component id="DisableBead" class="org.apache.flex.html.beads.DisableBead" />
 -    <component id="NumericOnlyTextInputBead" class="org.apache.flex.html.accessories.NumericOnlyTextInputBead" />
 -    <component id="PasswordInputBead" class="org.apache.flex.html.accessories.PasswordInputBead" />
 -    <component id="TextPromptBead" class="org.apache.flex.html.accessories.TextPromptBead" />
 -    <component id="HRule" class="org.apache.flex.html.HRule" />
 -    <component id="VRule" class="org.apache.flex.html.VRule" />
 -    <component id="Spacer" class="org.apache.flex.html.Spacer" />
 -    <!--
 -    <component id="ImageAndTextButtonView" class="org.apache.flex.html.beads.ImageAndTextButtonView" />
 -     -->
 -    <component id="ScrollingViewport" class="org.apache.flex.html.supportClasses.ScrollingViewport" />
 -    <component id="ClippingViewport" class="org.apache.flex.html.supportClasses.ClippingViewport" />
 -    
 -    <component id="ArraySelectionModel" class="org.apache.flex.html.beads.models.ArraySelectionModel" />
 -    <component id="ArrayListSelectionModel" class="org.apache.flex.html.beads.models.ArrayListSelectionModel" />
 -
 -    <component id="DataGrid" class="org.apache.flex.html.DataGrid"/>
 -    <component id="DataProviderChangeNotifier" class="org.apache.flex.html.beads.DataProviderChangeNotifier"/>
 -    <component id="DataProviderCollectionChangeNotifier" class="org.apache.flex.html.beads.DataProviderCollectionChangeNotifier"/>
 -    <component id="DataProviderItemsChangeNotifier" class="org.apache.flex.html.beads.DataProviderItemsChangeNotifier"/>
 -    <component id="DataGridButtonBar" class="org.apache.flex.html.DataGridButtonBar"/>
 -    <component id="DataGridButtonBarTextButton" class="org.apache.flex.html.DataGridButtonBarTextButton"/>
 -    <component id="DataGridColumn" class="org.apache.flex.html.supportClasses.DataGridColumn"/>
 -    <component id="DataGridLinesBead" class="org.apache.flex.html.beads.DataGridLinesBead"/>
 -    <component id="DataGridColumnList" class="org.apache.flex.html.supportClasses.DataGridColumnList"/>
 -    <component id="DataGridPercentageView" class="org.apache.flex.html.beads.DataGridPercentageView" />
 -    
 -    <component id="DataItemRendererFactoryForArrayData" class="org.apache.flex.html.beads.DataItemRendererFactoryForArrayData" />
 -    <component id="DataItemRendererFactoryForArrayList" class="org.apache.flex.html.beads.DataItemRendererFactoryForArrayList" />
 -    <component id="DataItemRendererFactoryForHierarchicalData" class="org.apache.flex.html.beads.DataItemRendererFactoryForHierarchicalData" />
 -    <component id="TextItemRendererFactoryForArrayData" class="org.apache.flex.html.beads.TextItemRendererFactoryForArrayData" />
 -    <component id="TextItemRendererFactoryForStringVectorData" class="org.apache.flex.html.beads.TextItemRendererFactoryForStringVectorData" />
 -
 -    <component id="DateChooser" class="org.apache.flex.html.DateChooser"/>
 -    <component id="DateChooserList" class="org.apache.flex.html.supportClasses.DateChooserList" />
 -    <component id="DateChooserHeader" class="org.apache.flex.html.supportClasses.DateChooserHeader" />
 -    <component id="DateField" class="org.apache.flex.html.DateField"/>
 -    <component id="VerticalColumnLayout" class="org.apache.flex.html.beads.layouts.VerticalColumnLayout" />
 -
 -    <component id="ToolTipBead" class="org.apache.flex.html.accessories.ToolTipBead" />
 -
 -    <component id="LayoutChangeNotifier" class="org.apache.flex.html.beads.layouts.LayoutChangeNotifier"/>
 -    <component id="LayoutOnShow" class="org.apache.flex.html.beads.layouts.LayoutOnShow"/>
 -    <component id="ImageButton" class="org.apache.flex.html.ImageButton"/>
 -    <component id="FlexibleFirstChildHorizontalLayout" class="org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout"/>
 -    <component id="OneFlexibleChildVerticalLayout" class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayout"/>
 -    <component id="OneFlexibleChildHorizontalLayout" class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizontalLayout"/>
 -    <component id="MXMLBeadView" class="org.apache.flex.html.MXMLBeadView"/>
 -    
 -    <component id="SubAppLoader" class="org.apache.flex.html.SubAppLoader" />
 -
 -    <component id="Border" class="org.apache.flex.html.supportClasses.Border"/>
 -    
 -    <component id="WebBrowser" class="org.apache.flex.html.WebBrowser" />
--
      <component id="A" class="org.apache.flex.html.A" />
      <component id="H1" class="org.apache.flex.html.H1" />
      <component id="H2" class="org.apache.flex.html.H2" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/TitleView.as
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ViewManagerBase.as
----------------------------------------------------------------------


[04/43] git commit: [flex-asjs] [refs/heads/dual] - Sync Effects with layout changes.

Posted by ah...@apache.org.
Sync Effects with layout changes.


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

Branch: refs/heads/dual
Commit: d89a0109de12e7ae04acd05f9c94e23686a06565
Parents: 0fc2115
Author: Peter Ent <pe...@apache.org>
Authored: Thu Apr 13 11:44:25 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Apr 13 11:44:25 2017 -0400

----------------------------------------------------------------------
 .../src/main/flex/org/apache/flex/utils/MockLayoutHost.as | 10 ++++++++++
 .../main/flex/org/apache/flex/utils/MockLayoutParent.as   | 10 ++++++++++
 2 files changed, 20 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d89a0109/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutHost.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutHost.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutHost.as
index b7aaf8f..4b32bc9 100644
--- a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutHost.as
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutHost.as
@@ -33,5 +33,15 @@ package org.apache.flex.utils
 		{
 			return _contentView;
 		}
+		
+		public function beforeLayout():void
+		{
+			
+		}
+		
+		public function afterLayout():void
+		{
+			
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d89a0109/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutParent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutParent.as b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutParent.as
index fe39f96..1da2b5a 100644
--- a/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutParent.as
+++ b/frameworks/projects/Effects/src/main/flex/org/apache/flex/utils/MockLayoutParent.as
@@ -48,6 +48,16 @@ package org.apache.flex.utils
 			_layoutHost = new MockLayoutHost(source.getLayoutHost());
 			_source = source;
 		}
+		
+		public function beforeLayout():void
+		{
+			// TODO ??
+		}
+		
+		public function afterLayout():void
+		{
+			// TODO ??	
+		}
 
 		public function get parent():IParent
 		{


[15/43] git commit: [flex-asjs] [refs/heads/dual] - fix spelling errors and add missing semicolon

Posted by ah...@apache.org.
fix spelling errors and add missing semicolon


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

Branch: refs/heads/dual
Commit: 18d62de1202587bc53b4f850ed9f23725e596d6a
Parents: fe1ff66
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:41:01 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:41:01 2017 +1000

----------------------------------------------------------------------
 .../src/main/flex/org/apache/flex/net/URLBinaryLoader.as     | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18d62de1/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
index 5785c62..326ccbe 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLBinaryLoader.as
@@ -72,7 +72,7 @@ package org.apache.flex.net
         public var bytesLoaded:uint = 0;
         
 		/**
-		 *  The total number of bytes (if avaailable).
+		 *  The total number of bytes (if available).
 		 *  
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -143,7 +143,7 @@ package org.apache.flex.net
         }
         
 		/**
-		 *  Cancels the URL request
+		 *  Cancels the URL request.
 		 *  
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
@@ -153,7 +153,7 @@ package org.apache.flex.net
         public function close():void
         {
             stream.close();
-			//TODO do we need a callback for camceling?
+			//TODO do we need a callback for canceling?
         }
         
         private function completeHandler(event:Event):void
@@ -178,7 +178,7 @@ package org.apache.flex.net
         
         private function progressHandler(event:ProgressEvent):void
         {
-            this.bytesLoaded = event.current
+            this.bytesLoaded = event.current;
             this.bytesTotal = event.total;
             dispatchEvent(event);
 			if(onProgress)


[13/43] git commit: [flex-asjs] [refs/heads/dual] - remove blank line

Posted by ah...@apache.org.
remove blank line


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

Branch: refs/heads/dual
Commit: 242fb730d054212c20735dea35b2785be5d944f2
Parents: 4d09ccf
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 10:40:04 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 10:40:04 2017 +1000

----------------------------------------------------------------------
 .../Network/src/main/flex/org/apache/flex/net/HTTPService.as        | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/242fb730/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
index 3a9968c..fdb387f 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
@@ -618,7 +618,6 @@ package org.apache.flex.net
                     }
                 }
                 
-
                 if (_method !== HTTPConstants.GET &&
                     !sawContentType && contentData) {
                     element.setRequestHeader(


[25/43] git commit: [flex-asjs] [refs/heads/dual] - be consistent in style

Posted by ah...@apache.org.
be consistent in style


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

Branch: refs/heads/dual
Commit: 060f9820f5c06a25dd1eeba139466f6d17841fee
Parents: d8a5c63
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 09:40:24 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 09:40:24 2017 +1000

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/060f9820/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
index be02408..08d5a3a 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/beads/CORSCredentialsBead.as
@@ -85,13 +85,11 @@ public class CORSCredentialsBead implements IBead {
      *
      *  @productversion FlexJS 0.8
      */
-    public function get withCredentials():Boolean
-    {
+    public function get withCredentials():Boolean {
         return _withCredentials;
     }
 
-    public function set withCredentials(value:Boolean):void
-    {
+    public function set withCredentials(value:Boolean):void {
         _withCredentials = value;
     }
 }


[20/43] git commit: [flex-asjs] [refs/heads/dual] - add pre and post send events

Posted by ah...@apache.org.
add pre and post send events


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

Branch: refs/heads/dual
Commit: 25d67e117275f40e5844d2d039a775e2f3995cfc
Parents: 3fa62e7
Author: Justin Mclean <jm...@apache.org>
Authored: Sun Apr 16 13:22:08 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Sun Apr 16 13:22:08 2017 +1000

----------------------------------------------------------------------
 .../Network/src/main/flex/org/apache/flex/net/HTTPService.as   | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/25d67e11/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
index fdb387f..ea3b7b3 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
@@ -536,7 +536,9 @@ package org.apache.flex.net
                 for each (var bead:IBead in beads)
                     addBead(bead);
             }
-            
+
+            dispatchEvent(new Event("preSend"));
+
             COMPILE::SWF
             {
                 if (!urlLoader)
@@ -631,6 +633,8 @@ package org.apache.flex.net
                 }
 
             }
+
+            dispatchEvent(new Event("postSend"));
         }
         
         /**


[02/43] git commit: [flex-asjs] [refs/heads/dual] - Move layout event control into LayoutBase from GroupView and updated affected classes. Updated chart layouts to conform to new layout protocol.

Posted by ah...@apache.org.
Move layout event control into LayoutBase from GroupView and updated affected classes. Updated chart layouts to conform to new layout protocol.


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

Branch: refs/heads/dual
Commit: 87efeed5750b3ecb94754e3dcd1156333102834d
Parents: ae5cb4e
Author: Peter Ent <pe...@apache.org>
Authored: Thu Apr 13 10:17:13 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Apr 13 10:17:13 2017 -0400

----------------------------------------------------------------------
 .../org/apache/flex/charts/beads/ChartView.as   |  12 +-
 .../flex/charts/beads/layouts/BarChartLayout.as |   6 +-
 .../beads/layouts/BarChartLayoutForArrayList.as |   8 +-
 .../charts/beads/layouts/ChartBaseLayout.as     |  25 ++--
 .../charts/beads/layouts/ColumnChartLayout.as   |   6 +-
 .../layouts/ColumnChartLayoutForArrayList.as    |   6 +-
 .../layouts/LineChartCategoryVsLinearLayout.as  |   6 +-
 .../layouts/LineChartLinearVsLinearLayout.as    |   6 +-
 .../flex/charts/beads/layouts/PieChartLayout.as |   6 +-
 .../beads/layouts/PieChartLayoutForArrayList.as |   6 +-
 .../beads/layouts/StackedBarChartLayout.as      |   6 +-
 .../StackedBarChartLayoutForArrayList.as        |   6 +-
 .../beads/layouts/StackedColumnChartLayout.as   |   6 +-
 .../StackedColumnChartLayoutForArrayList.as     |   6 +-
 .../flex/org/apache/flex/core/ILayoutHost.as    |  20 ++++
 .../main/flex/org/apache/flex/core/GroupBase.as |  13 ++
 .../flex/org/apache/flex/core/LayoutBase.as     | 118 +++++++++++++++++++
 .../html/beads/AccordionItemRendererView.as     |   2 +-
 .../org/apache/flex/html/beads/ContainerView.as |  46 ++++----
 .../apache/flex/html/beads/DataContainerView.as |  25 ++--
 .../org/apache/flex/html/beads/GroupView.as     | 112 +-----------------
 .../flex/html/beads/layouts/ButtonBarLayout.as  |   3 +
 .../ButtonBarButtonItemRenderer.as              |   9 +-
 .../html/supportClasses/MXMLItemRenderer.as     |  10 ++
 .../HTML/src/main/resources/defaults.css        |   1 +
 25 files changed, 282 insertions(+), 188 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
index 0d089c6..2dd7d81 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/ChartView.as
@@ -165,14 +165,6 @@ package org.apache.flex.charts.beads
 			
 			dataGroup.removeAllItemRenderers();
 		}
-		
-		/**
-		 * @private
-		 */
-		override protected function handleChildrenAdded(event:Event):void
-		{
-			// ignore for charts.
-		}
 				
 		/**
 		 * ChartView overrides performLayout so that the exact area of the ChartDataGroup can
@@ -184,7 +176,7 @@ package org.apache.flex.charts.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */		
-		override protected function layoutViewBeforeContentLayout():void
+		override public function beforeLayout():void
 		{			
 			var metrics:Rectangle = CSSContainerUtils.getBorderAndPaddingMetrics(_strand);
 			
@@ -233,7 +225,7 @@ package org.apache.flex.charts.beads
 		/**
 		 * @private
 		 */
-		override protected function layoutViewAfterContentLayout():void
+		override public function afterLayout():void
 		{
 			// ignore for charts
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayout.as
index 4172b1c..3419dbf 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayout.as
@@ -76,12 +76,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{			
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
 			var n:int = dp.length;
 			var useWidth:Number = UIBase(chartDataGroup).width;
@@ -148,6 +148,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				ypos -= gap;
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayoutForArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayoutForArrayList.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayoutForArrayList.as
index 39710e8..049055f 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayoutForArrayList.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/BarChartLayoutForArrayList.as
@@ -56,14 +56,14 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{			
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:ArrayList = selectionModel.dataProvider as ArrayList;
 			if (!dp)
-				return;
+				return false;
 			if (dp.length == 0)
-				return;
+				return false;
 			
 			var n:int = dp.length;
 			var useWidth:Number = UIBase(chartDataGroup).width;
@@ -130,6 +130,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				ypos -= gap;
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
index 24760b4..5b8d1ff 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ChartBaseLayout.as
@@ -22,16 +22,18 @@ package org.apache.flex.charts.beads.layouts
 	import org.apache.flex.charts.core.IChartDataGroup;
 	import org.apache.flex.charts.core.IHorizontalAxisBead;
 	import org.apache.flex.charts.core.IVerticalAxisBead;
+	import org.apache.flex.core.LayoutBase;
 	import org.apache.flex.core.IBeadLayout;
 	import org.apache.flex.core.ILayoutHost;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	
-	public class ChartBaseLayout implements IBeadLayout
+	public class ChartBaseLayout extends LayoutBase implements IBeadLayout
 	{
 		public function ChartBaseLayout()
 		{
+			super();
 		}
 		
 		private var _strand:IStrand;
@@ -44,8 +46,9 @@ package org.apache.flex.charts.beads.layouts
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		public function set strand(value:IStrand):void
+		override public function set strand(value:IStrand):void
 		{
+			super.strand = value;
 			_strand = value;
 		}
 		public function get strand():IStrand
@@ -125,11 +128,11 @@ package org.apache.flex.charts.beads.layouts
         /**
          * @copy org.apache.flex.core.IBeadLayout#layout
          */
-		public function layout():Boolean
-		{
-			performLayout();
-            return true;
-		}
+//		public function layout():Boolean
+//		{
+//			performLayout();
+//            return true;
+//		}
 		
 		/**
 		 *  Subclasses should implement this to draw the chart, adding elements to the chartDataGroup.
@@ -139,9 +142,9 @@ package org.apache.flex.charts.beads.layouts
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		protected function performLayout():void
-		{
-			// implement in subclass
-		}
+//		protected function performLayout():void
+//		{
+//			// implement in subclass
+//		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
index 56f5f10..cad0ede 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayout.as
@@ -67,12 +67,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
 			var n:int = dp.length;
 			var xpos:Number = 0;
@@ -137,6 +137,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				xpos += gap;
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayoutForArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayoutForArrayList.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayoutForArrayList.as
index 64b065d..93387da 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayoutForArrayList.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/ColumnChartLayoutForArrayList.as
@@ -56,12 +56,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:ArrayList = selectionModel.dataProvider as ArrayList;
 			if (!dp)
-				return;
+				return false;
 			
 			var n:int = dp.length;
 			var xpos:Number = 0;
@@ -126,6 +126,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				xpos += gap;
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
index 10b1324..505abb1 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartCategoryVsLinearLayout.as
@@ -49,12 +49,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{			
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
             var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
             var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -149,6 +149,8 @@ package org.apache.flex.charts.beads.layouts
 					renderer.points = seriesPoints[s].points;
 				}
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
index 4dd0ab3..8b410d3 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/LineChartLinearVsLinearLayout.as
@@ -49,12 +49,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
             var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
             var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -163,6 +163,8 @@ package org.apache.flex.charts.beads.layouts
 					renderer.points = seriesPoints[s].points;
 				}
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayout.as
index 0ec982a..c49e47d 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayout.as
@@ -57,12 +57,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
             var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
             var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -133,6 +133,8 @@ package org.apache.flex.charts.beads.layouts
 					start += arc;
 				}
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayoutForArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayoutForArrayList.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayoutForArrayList.as
index f206cc4..1acedb3 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayoutForArrayList.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/PieChartLayoutForArrayList.as
@@ -59,12 +59,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:ArrayList = selectionModel.dataProvider as ArrayList;
 			if (!dp)
-				return;
+				return false;
 			
 			var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
 			var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -135,6 +135,8 @@ package org.apache.flex.charts.beads.layouts
 					start += arc;
 				}
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
index 61a910e..6795755 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayout.as
@@ -77,12 +77,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
             var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
             var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -161,6 +161,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				ypos -= (itemHeight + gap);
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayoutForArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayoutForArrayList.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayoutForArrayList.as
index 9edab56..f91add4 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayoutForArrayList.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedBarChartLayoutForArrayList.as
@@ -58,12 +58,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:ArrayList = selectionModel.dataProvider as ArrayList;
 			if (!dp)
-				return;
+				return false;
 			
 			var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
 			var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -142,6 +142,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				ypos -= (itemHeight + gap);
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
index fbe5989..0879769 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayout.as
@@ -76,12 +76,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:Array = selectionModel.dataProvider as Array;
 			if (!dp)
-				return;
+				return false;
 			
             var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
             var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -158,6 +158,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				xpos += gap + itemWidth;
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayoutForArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayoutForArrayList.as b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayoutForArrayList.as
index 355205a..bc1a136 100644
--- a/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayoutForArrayList.as
+++ b/frameworks/projects/Charts/src/main/flex/org/apache/flex/charts/beads/layouts/StackedColumnChartLayoutForArrayList.as
@@ -57,12 +57,12 @@ package org.apache.flex.charts.beads.layouts
 		/**
 		 * @private
 		 */
-		override protected function performLayout():void
+		override public function layout():Boolean
 		{
 			var selectionModel:ISelectionModel = strand.getBeadByType(ISelectionModel) as ISelectionModel;
 			var dp:ArrayList = selectionModel.dataProvider as ArrayList;
 			if (!dp)
-				return;
+				return false;
 			
 			var layoutParent:ILayoutHost = strand.getBeadByType(ILayoutHost) as ILayoutHost;
 			var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
@@ -139,6 +139,8 @@ package org.apache.flex.charts.beads.layouts
 				
 				xpos += gap + itemWidth;
 			}
+			
+			return true;
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as
index dfd85d6..06d3084 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ILayoutHost.as
@@ -40,5 +40,25 @@ package org.apache.flex.core
          *  @productversion FlexJS 0.8
          */
 		function get contentView():ILayoutView;
+		
+		/**
+		 * Invoked prior to performing the layout.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		function beforeLayout():void;
+		
+		/**
+		 * Invoked after performing the layout.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		function afterLayout():void;
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
index e4dfb1f..815101a 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
@@ -101,6 +101,19 @@ package org.apache.flex.core
 			return element;
 		}
 		
+		override public function addedToParent():void
+		{
+			super.addedToParent();
+			
+			// Load the layout bead if it hasn't already been loaded.
+			var layout:IBeadLayout = getBeadByType(IBeadLayout) as IBeadLayout;
+			if (!layout)
+			{
+				layout = new (ValuesManager.valuesImpl.getValue(this, "iBeadLayout")) as IBeadLayout;
+				addBead(layout);
+			}
+		}
+		
 		/*
 		 * IContainer
 		 */

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/LayoutBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/LayoutBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/LayoutBase.as
index dde6448..f23f035 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/LayoutBase.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/LayoutBase.as
@@ -27,6 +27,8 @@ package org.apache.flex.core
 	import org.apache.flex.core.IParent;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.events.Event;
     import org.apache.flex.utils.CSSUtils;
 
     /**
@@ -76,6 +78,92 @@ package org.apache.flex.core
 		public function set strand(value:IStrand):void
 		{
             host = value as ILayoutChild;
+			
+			IEventDispatcher(host).addEventListener("widthChanged", handleSizeChange);
+			IEventDispatcher(host).addEventListener("heightChanged", handleSizeChange);
+			IEventDispatcher(host).addEventListener("sizeChanged", handleSizeChange);
+			
+			IEventDispatcher(host).addEventListener("childrenAdded", handleChildrenAdded);
+			IEventDispatcher(host).addEventListener("initComplete", handleInitComplete);
+			
+			IEventDispatcher(host).addEventListener("layoutNeeded", handleLayoutNeeded);
+		}
+		
+		/**
+		 * Changes in size to the host strand are handled (by default) by running the
+		 * layout sequence. Subclasses can override this function and use event.type
+		 * to handle specific changes in dimension.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		protected function handleSizeChange(event:Event):void
+		{
+			performLayout();
+		}
+		
+		/**
+		 * Handles the addition of children to the host's layoutView by listening for
+		 * size changes in the children.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		protected function handleChildrenAdded(event:Event):void
+		{
+			COMPILE::SWF {
+				var n:Number = layoutView.numElements;
+				for(var i:int=0; i < n; i++) {
+					var child:IEventDispatcher = layoutView.getElementAt(i) as IEventDispatcher;
+					child.addEventListener("widthChanged", childResizeHandler);
+					child.addEventListener("heightChanged", childResizeHandler);
+					child.addEventListener("sizeChanged", childResizeHandler);
+				}
+			}
+		}
+		
+		/**
+		 * If changes happen to a layoutView's child, this function will perform the
+		 * layout again.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		protected function childResizeHandler(event:Event):void
+		{
+			performLayout();
+		}
+		
+		/**
+		 * Called whenever "layoutNeeded" event is dispatched against the host strand.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		protected function handleLayoutNeeded(event:Event):void
+		{
+			performLayout();
+		}
+		
+		/**
+		 * Handles the final start-up condition by running the layout an initial time.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		protected function handleInitComplete(event:Event):void
+		{
+			performLayout();
 		}
 		
 		/**
@@ -148,6 +236,36 @@ package org.apache.flex.core
 			var viewBead:ILayoutHost = (host as ILayoutParent).getLayoutHost();
 			return viewBead.contentView;
 		}
+		
+		private var isLayoutRunning:Boolean = false;
+		
+		/**
+		 * Performs the layout in three parts: before, layout, after.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.8
+		 */
+		public function performLayout():void
+		{
+			// avoid running this layout instance recursively.
+			if (isLayoutRunning) return;
+			
+			isLayoutRunning = true;
+			
+			var viewBead:ILayoutHost = (host as ILayoutParent).getLayoutHost();
+			
+			viewBead.beforeLayout();
+			
+			if (layout()) {
+				viewBead.afterLayout();
+			}
+			
+			isLayoutRunning = false;
+			
+			IEventDispatcher(host).dispatchEvent(new Event("layoutComplete"));
+		}
 
         /**
          * @copy org.apache.flex.core.IBeadLayout#layout

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
index bc9f89d..85e2b79 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
@@ -58,7 +58,7 @@ package org.apache.flex.html.beads
 			{
 				COMPILE::SWF {
 				// no longer needed layoutViewBeforeContentLayout();
-				layoutViewAfterContentLayout();
+				afterLayout();
 				}
 			}
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
index 4de5634..ac723a9 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
@@ -166,7 +166,7 @@ package org.apache.flex.html.beads
 
 			// when the first layout is complete, set up listeners for changes
 			// to the childrens' sizes.
-			host.addEventListener("layoutComplete", childrenChangedHandler);
+//			host.addEventListener("layoutComplete", childrenChangedHandler);
 		}
 
 		/**
@@ -229,7 +229,7 @@ package org.apache.flex.html.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		override protected function layoutViewBeforeContentLayout():void
+		override public function beforeLayout():void
 		{
             var host:ILayoutChild = this.host as ILayoutChild;
             var vm:IViewportModel = viewportModel;
@@ -259,13 +259,13 @@ package org.apache.flex.html.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		override protected function layoutViewAfterContentLayout():void
+		override public function afterLayout():void
 		{
 			if (adjusting) return;
 
 			adjusting = true;
 
-			super.layoutViewAfterContentLayout();
+			super.afterLayout();
 
 			var contentSize:Size = calculateContentSize();
 			viewport.layoutViewportAfterContentLayout(contentSize);
@@ -282,12 +282,12 @@ package org.apache.flex.html.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		override protected function resizeHandler(event:Event):void
-		{
-			if (!adjusting) {
-				performLayout(event);
-			}
-		}
+//		override protected function resizeHandler(event:Event):void
+//		{
+//			if (!adjusting) {
+//				performLayout(event);
+//			}
+//		}
 
 		/**
 		 * Whenever children are added, listeners are added to detect changes
@@ -298,19 +298,19 @@ package org.apache.flex.html.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.0
 		 */
-		protected function childrenChangedHandler(event:Event):void
-		{
-			var host:UIBase = _strand as UIBase;
-			host.removeEventListener(event.type, childrenChangedHandler);
-
-			var n:Number = contentView.numElements;
-			for (var i:int=0; i < n; i++) {
-				var child:IUIBase = contentView.getElementAt(i) as IUIBase;
-				child.addEventListener("widthChanged", childResizeHandler);
-				child.addEventListener("heightChanged", childResizeHandler);
-				child.addEventListener("sizeChanged", childResizeHandler);
-			}
-		}
+//		protected function childrenChangedHandler(event:Event):void
+//		{
+//			var host:UIBase = _strand as UIBase;
+//			host.removeEventListener(event.type, childrenChangedHandler);
+//
+//			var n:Number = contentView.numElements;
+//			for (var i:int=0; i < n; i++) {
+//				var child:IUIBase = contentView.getElementAt(i) as IUIBase;
+//				child.addEventListener("widthChanged", childResizeHandler);
+//				child.addEventListener("heightChanged", childResizeHandler);
+//				child.addEventListener("sizeChanged", childResizeHandler);
+//			}
+//		}
 	}
 
 	COMPILE::JS

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
index 36ed489..6d1eae5 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
@@ -24,16 +24,17 @@ package org.apache.flex.html.beads
 	import org.apache.flex.core.IBeadLayout;
 	import org.apache.flex.core.IBeadModel;
 	import org.apache.flex.core.IBeadView;
-	import org.apache.flex.core.IList;
-	import org.apache.flex.core.ISelectableItemRenderer;
+	import org.apache.flex.core.IDataProviderModel;
 	import org.apache.flex.core.IItemRenderer;
 	import org.apache.flex.core.IItemRendererParent;
+	import org.apache.flex.core.IList;
 	import org.apache.flex.core.IParent;
-    import org.apache.flex.core.IParentIUIBase;
-	import org.apache.flex.core.IDataProviderModel;
+	import org.apache.flex.core.IParentIUIBase;
+	import org.apache.flex.core.ISelectableItemRenderer;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
-    import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.LayoutBase;
 	import org.apache.flex.core.Strand;
 	import org.apache.flex.core.UIBase;
 	import org.apache.flex.core.ValuesManager;
@@ -108,7 +109,8 @@ package org.apache.flex.html.beads
 		 */
 		protected function itemsCreatedHandler(event:Event):void
 		{
-			performLayout(event);
+			trace("DataContainerView: itemsCreatedHandler");
+			host.dispatchEvent(new Event("layoutNeeded"));
 		}
 		
 		/**
@@ -116,6 +118,7 @@ package org.apache.flex.html.beads
 		 */
 		protected function dataProviderChangeHandler(event:Event):void
 		{
+			trace("DataContainerView: dataProviderChangeHandler");
 			performLayout(event);
 		}
 	}
@@ -152,6 +155,7 @@ package org.apache.flex.html.beads
 			super.strand = value;
 			
 			host.addEventListener("beadsAdded", beadsAddedHandler);
+			host.addEventListener("itemsCreated", itemsCreatedHandler);
 		}
 		
 		override protected function completeSetup():void
@@ -160,9 +164,8 @@ package org.apache.flex.html.beads
 			
 			// list is not interested in UI children, it wants to know when new items
 			// have been added or the dataProvider has changed.
-			host.removeEventListener("childrenAdded", childrenChangedHandler);
-			host.removeEventListener("childrenAdded", performLayout);
-			host.addEventListener("itemsCreated", itemsCreatedHandler);
+//			host.removeEventListener("childrenAdded", childrenChangedHandler);
+//			host.removeEventListener("childrenAdded", performLayout);
 		}
 		
 		protected function beadsAddedHandler(event:Event):void
@@ -202,7 +205,8 @@ package org.apache.flex.html.beads
 		 */
 		protected function itemsCreatedHandler(event:Event):void
 		{
-			performLayout(event);
+			trace("DataContainerView: itemsCreatedHandler");
+			host.dispatchEvent(new Event("layoutNeeded"));
 		}
 		
 		/**
@@ -210,6 +214,7 @@ package org.apache.flex.html.beads
 		 */
 		protected function dataProviderChangeHandler(event:Event):void
 		{
+			trace("DataContainerView: dataProviderChangeHandler");
 			performLayout(event);
 		}
 		        

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
index c3351a5..acd805d 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/GroupView.as
@@ -118,13 +118,6 @@ package org.apache.flex.html.beads
 			// listen for initComplete to signal that the strand has been initialized
 			// with its beads and children.
 			host.addEventListener("initComplete", handleInitComplete);
-			
-			// listen for when children have been added so additional event listeners
-			// can be placed upon them.
-			host.addEventListener("childrenAdded", handleChildrenAdded);
-			
-			// listen for requests to run the layout.
-			host.addEventListener("layoutNeeded", performLayout);
 		}
 
 		/**
@@ -169,12 +162,6 @@ package org.apache.flex.html.beads
             host.removeEventListener("heightChanged", deferredSizeHandler);
 			
 			completeSetup();
-
-			var num:Number = contentView.numElements;
-			if (num > 0)
-            {
-                performLayout(event);
-            }
 		}
 
 		/**
@@ -193,42 +180,6 @@ package org.apache.flex.html.beads
 			host.addEventListener("widthChanged", resizeHandler);
 			host.addEventListener("heightChanged", resizeHandler);
 		}
-
-		/**
-		 * Handles the viewCreated event by performing the first layout if
-		 * there are children already present (ie, from MXML).
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.8
-		 */
-		protected function viewCreatedHandler(event:Event):void
-		{
-			var num:Number = contentView.numElements;
-			if (num > 0)
-			{
-				performLayout(event);
-			}
-		}
-
-		/**
-		 * @private
-		 */
-		protected function handleChildrenAdded(event:Event):void
-		{
-			COMPILE::SWF {
-				var n:Number = contentView.numElements;
-				for(var i:int=0; i < n; i++) {
-					var child:IEventDispatcher = contentView.getElementAt(i) as IEventDispatcher;
-					child.addEventListener("widthChanged", childResizeHandler);
-					child.addEventListener("heightChanged", childResizeHandler);
-					child.addEventListener("sizeChanged", childResizeHandler);
-				}
-			}
-
-			performLayout(event);
-		}
 		
 		/**
 		 * Invoked in response to the strand being resized.
@@ -240,20 +191,8 @@ package org.apache.flex.html.beads
 		 */
 		protected function resizeHandler(event:Event):void
 		{
-			performLayout(event);
-		}
-		
-		/**
-		 * Invoked in response to any child being resized.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10.2
-		 *  @playerversion AIR 2.6
-		 *  @productversion FlexJS 0.8
-		 */
-		protected function childResizeHandler(event:Event):void
-		{
-			performLayout(event);
+			// override in subclasses in case there is something besides running
+			// the layout (which is handled automatically by the layout itself).
 		}
 		
 		/**
@@ -264,7 +203,7 @@ package org.apache.flex.html.beads
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.8
 		 */
-		protected function layoutViewBeforeContentLayout():void
+		public function beforeLayout():void
 		{
 			// This has no use for Group but is here so a subclass can override it.
 		}
@@ -281,34 +220,7 @@ package org.apache.flex.html.beads
 		 */
 		protected function performLayout(event:Event):void
 		{
-			if (layoutRunning) return;
-
-			layoutRunning = true;
-			
-			// pre-process before layout
-			layoutViewBeforeContentLayout();
-
-			var host:UIBase = _strand as UIBase;
-
-			var layout:IBeadLayout = _strand.getBeadByType(IBeadLayout) as IBeadLayout;
-			if (layout == null) {
-				var c:Class = ValuesManager.valuesImpl.getValue(host, "iBeadLayout");
-				if (c) {
-					layout = new c() as IBeadLayout;
-					_strand.addBead(layout);
-				}
-			}
-
-			if (layout) {
-				layout.layout();
-			}
-
-			// cleanup or adjust after layout
-			layoutViewAfterContentLayout();
-
-			layoutRunning = false;
-			
-			host.dispatchEvent(new Event("layoutComplete"));
+			trace("CALLING performLayout !!!!");
 		}
 
 		/**
@@ -344,11 +256,6 @@ package org.apache.flex.html.beads
 		}
 
 		/**
-		 * @private
-		 */
-		private var adjusting:Boolean = false;
-
-		/**
 		 * Adjusts the size of the host after the layout has been run.
 		 *
 		 *  @langversion 3.0
@@ -357,14 +264,9 @@ package org.apache.flex.html.beads
 		 *  @productversion FlexJS 0.0
 		 */
 		COMPILE::SWF
-		protected function layoutViewAfterContentLayout():void
+		public function afterLayout():void
 		{
-			if (adjusting) return;
-
 			var host:UIBase = _strand as UIBase;
-
-			adjusting = true;
-
 			var contentSize:Size = calculateContentSize();
 
 			if (host.isWidthSizedToContent() && host.isHeightSizedToContent()) {
@@ -378,12 +280,10 @@ package org.apache.flex.html.beads
 			{
 				host.setWidth(contentSize.width, true);
 			}
-
-			adjusting = false;
 		}
 		
 		COMPILE::JS
-		protected function layoutViewAfterContentLayout():void
+		public function afterLayout():void
 		{
 			// maybe useful in a subclass on the JS side.
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
index 761e1c7..f4b0e81 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
@@ -37,6 +37,7 @@ package org.apache.flex.html.beads.layouts
 	import org.apache.flex.html.List;
 	import org.apache.flex.html.beads.ButtonBarView;
 	import org.apache.flex.html.beads.models.ButtonBarModel;
+	import org.apache.flex.html.supportClasses.UIItemRendererBase;
 	import org.apache.flex.geom.Rectangle;
 	import org.apache.flex.utils.CSSUtils;
 	import org.apache.flex.utils.CSSContainerUtils;
@@ -162,6 +163,8 @@ package org.apache.flex.html.beads.layouts
 					
 					UIBase(ir).height = contentView.height;
 				}
+				
+				UIItemRendererBase(ir).adjustSize();
 			}
 
 			// now let the horizontal layout take care of things.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
index 214125e..04049ef 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/ButtonBarButtonItemRenderer.as
@@ -155,8 +155,13 @@ package org.apache.flex.html.supportClasses
 		 */
 		override public function adjustSize():void
 		{
-			textButton.width = this.width;
-			textButton.height = this.height;
+			COMPILE::SWF {
+				textButton.width = this.width;
+				textButton.height = this.height;
+			}
+			COMPILE::JS {
+				textButton.percentWidth = 100;
+			}
 			
 			updateRenderer();
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
index de1b304..d9b130e 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/MXMLItemRenderer.as
@@ -78,6 +78,16 @@ package org.apache.flex.html.supportClasses
 				layout.layout();
 			}
 		}
+		
+		public function beforeLayout():void
+		{
+			
+		}
+		
+		public function afterLayout():void
+		{
+			
+		}
 
 
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/87efeed5/frameworks/projects/HTML/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css
index 88d24c5..78cb15d 100644
--- a/frameworks/projects/HTML/src/main/resources/defaults.css
+++ b/frameworks/projects/HTML/src/main/resources/defaults.css
@@ -493,6 +493,7 @@ TitleBar
 	padding: 2px;
 	height: 30px;
 	flex-grow: 0;
+	min-height: 30px;
 }
 
 TitleBar .TitleBarCloseButton {


[27/43] git commit: [flex-asjs] [refs/heads/dual] - middle endian dates are not used outside the US and should not be the default

Posted by ah...@apache.org.
middle endian dates are not used outside the US and should not be the default


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

Branch: refs/heads/dual
Commit: df2e0fbfcb420480d3af6f8f7a0758e781cbef2a
Parents: 1bb8759
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 13:22:44 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 13:22:44 2017 +1000

----------------------------------------------------------------------
 frameworks/projects/Basic/src/main/resources/defaults.css | 2 +-
 frameworks/projects/Flat/src/main/resources/defaults.css  | 2 +-
 frameworks/projects/HTML/src/main/resources/defaults.css  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/df2e0fbf/frameworks/projects/Basic/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css b/frameworks/projects/Basic/src/main/resources/defaults.css
index 431c564..5ce20fb 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -174,7 +174,7 @@ DateField {
     IBeadView:   ClassReference("org.apache.flex.html.beads.DateFieldView");
     IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");
     IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateFieldMouseController");
-    IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatMMDDYYYYBead");
+    IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatYYYYMMDDBead");
 }
 
 RangeStepper {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/df2e0fbf/frameworks/projects/Flat/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Flat/src/main/resources/defaults.css b/frameworks/projects/Flat/src/main/resources/defaults.css
index c0f0770..2e253f3 100644
--- a/frameworks/projects/Flat/src/main/resources/defaults.css
+++ b/frameworks/projects/Flat/src/main/resources/defaults.css
@@ -214,7 +214,7 @@ DateField {
     IBeadView:   ClassReference("org.apache.flex.html.beads.DateFieldView");
     IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");
     IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateFieldMouseController");
-    IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatMMDDYYYYBead");
+    IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatYYYYMMDDBead");
 }
 
 .dropdown-menu {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/df2e0fbf/frameworks/projects/HTML/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css
index 78cb15d..bd1211b 100644
--- a/frameworks/projects/HTML/src/main/resources/defaults.css
+++ b/frameworks/projects/HTML/src/main/resources/defaults.css
@@ -272,7 +272,7 @@ DateField {
 	IBeadView:   ClassReference("org.apache.flex.html.beads.DateFieldView");
 	IBeadModel:  ClassReference("org.apache.flex.html.beads.models.DateChooserModel");
 	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.DateFieldMouseController");
-	IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatMMDDYYYYBead");
+	IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatYYYYMMDDBead");
 }
 
 /* RangeStepper */


[41/43] git commit: [flex-asjs] [refs/heads/dual] - Merge branch 'develop' into dual

Posted by ah...@apache.org.
Merge branch 'develop' into dual

Conflicts:
	examples/flexjs/MobileTrader/build.xml
	frameworks/projects/HTML/src/main/flex/HTMLClasses.as
	frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
	frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DateField.as
	frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/ContainerView.as
	frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataGridView.as
	frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
	frameworks/projects/HTML/src/main/resources/basic-manifest.xml


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

Branch: refs/heads/dual
Commit: 1691921e7caa62fbfd7985bd1206462d1df976c5
Parents: 358a06f b1ba88e
Author: Alex Harui <ah...@apache.org>
Authored: Tue Apr 18 23:20:18 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Apr 18 23:20:18 2017 -0700

----------------------------------------------------------------------
 examples/flexjs/MobileTrader/build.xml          |   35 +-
 .../src/main/flex/MobileTrader.mxml             |    3 +
 .../src/main/flex/MyInitialView.mxml            |  135 ++-
 .../flex/controller/DataModelChangeNotifier.as  |   71 ++
 .../src/main/flex/views/AlertsView.mxml         |   23 +-
 .../src/main/flex/views/AssetsView.mxml         |   21 +-
 .../src/main/flex/views/WatchListView.mxml      |   24 +-
 .../Basic/src/main/flex/BasicClasses.as         |    2 +-
 .../main/flex/org/apache/flex/core/GroupBase.as |   16 +
 .../flex/org/apache/flex/core/LayoutBase.as     |  118 ++
 .../main/flex/org/apache/flex/html/DataGrid.as  |   24 +-
 .../main/flex/org/apache/flex/html/DateField.as |   23 +
 .../html/beads/AccordionItemRendererView.as     |    2 +-
 .../org/apache/flex/html/beads/ContainerView.as |   46 +-
 .../apache/flex/html/beads/DataContainerView.as |   25 +-
 .../org/apache/flex/html/beads/DataGridView.as  |    2 +-
 .../org/apache/flex/html/beads/GroupView.as     |  135 +--
 .../flex/html/beads/layouts/ButtonBarLayout.as  |   65 +-
 .../html/beads/layouts/HorizontalFlexLayout.as  |    1 +
 .../html/beads/layouts/VerticalFlexLayout.as    |    1 +
 .../html/supportClasses/MXMLItemRenderer.as     |   10 +
 .../supportClasses/TextButtonItemRenderer.as    |  244 +++++
 .../Basic/src/main/resources/basic-manifest.xml |    2 +-
 .../Basic/src/main/resources/defaults.css       | 1035 ++++++++++--------
 .../org/apache/flex/charts/beads/ChartView.as   |   28 +-
 .../flex/charts/beads/layouts/BarChartLayout.as |    6 +-
 .../beads/layouts/BarChartLayoutForArrayList.as |    8 +-
 .../charts/beads/layouts/ChartBaseLayout.as     |   25 +-
 .../charts/beads/layouts/ColumnChartLayout.as   |    6 +-
 .../layouts/ColumnChartLayoutForArrayList.as    |    6 +-
 .../layouts/LineChartCategoryVsLinearLayout.as  |    6 +-
 .../layouts/LineChartLinearVsLinearLayout.as    |    6 +-
 .../flex/charts/beads/layouts/PieChartLayout.as |    6 +-
 .../beads/layouts/PieChartLayoutForArrayList.as |    6 +-
 .../beads/layouts/StackedBarChartLayout.as      |    6 +-
 .../StackedBarChartLayoutForArrayList.as        |    6 +-
 .../beads/layouts/StackedColumnChartLayout.as   |    6 +-
 .../StackedColumnChartLayoutForArrayList.as     |    6 +-
 .../flex/org/apache/flex/core/ILayoutHost.as    |   20 +
 .../org/apache/flex/utils/MockLayoutHost.as     |   10 +
 .../org/apache/flex/utils/MockLayoutParent.as   |   10 +
 .../Express/src/main/resources/defaults.css     |    9 +-
 .../src/main/resources/express-manifest.xml     |    1 +
 .../Flat/src/main/resources/defaults.css        |    2 +-
 .../src/main/flex/FormattersClasses.as          |    3 +
 .../html/accessories/DateFormatDDMMYYYYBead.as  |   46 +
 .../html/accessories/DateFormatMMDDYYYYBead.as  |  129 +--
 .../html/accessories/DateFormatYYYYMMDDBead.as  |   46 +
 .../html/accessories/SimpleDateFormatBead.as    |  222 ++++
 .../HTML/src/main/resources/basic-manifest.xml  |    2 -
 .../HTML/src/main/resources/defaults.css        |   15 +-
 .../apache/flex/mobile/StackedViewManager.as    |   29 +-
 .../org/apache/flex/mobile/TabbedViewManager.as |   10 +
 .../flex/org/apache/flex/mobile/TitleView.as    |    4 -
 .../org/apache/flex/mobile/ViewManagerBase.as   |   56 +-
 .../flex/mobile/beads/StackedViewManagerView.as |  147 ++-
 .../flex/mobile/beads/TabbedViewManagerView.as  |  127 ++-
 .../flex/mobile/beads/ViewManagerViewBase.as    |  139 +--
 .../Mobile/src/main/resources/defaults.css      |   30 +
 .../Network/src/main/flex/NetworkClasses.as     |    4 +-
 .../flex/org/apache/flex/net/BinaryUploader.as  |   16 +-
 .../flex/org/apache/flex/net/HTTPConstants.as   |   30 +-
 .../main/flex/org/apache/flex/net/HTTPHeader.as |   23 +-
 .../flex/org/apache/flex/net/HTTPService.as     |    9 +-
 .../main/flex/org/apache/flex/net/HTTPUtils.as  |   19 +-
 .../flex/org/apache/flex/net/URLBinaryLoader.as |    8 +-
 .../main/flex/org/apache/flex/net/URLRequest.as |   32 +-
 .../org/apache/flex/net/URLRequestHeader.as     |    9 +-
 .../main/flex/org/apache/flex/net/URLStream.as  |  137 ++-
 .../flex/net/beads/CORSCredentialsBead.as       |   96 ++
 .../src/main/resources/basic-manifest.xml       |    1 +
 71 files changed, 2369 insertions(+), 1262 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/examples/flexjs/MobileTrader/build.xml
----------------------------------------------------------------------
diff --cc examples/flexjs/MobileTrader/build.xml
index e331b36,81fd570..c34f553
--- a/examples/flexjs/MobileTrader/build.xml
+++ b/examples/flexjs/MobileTrader/build.xml
@@@ -29,7 -29,41 +29,40 @@@
      
      <include file="${basedir}/../../build_example.xml" />
  
-     <target name="main" depends="clean,build_example.compile" description="Clean build of ${example}">
+     <condition property="extlib_arg" value="-external-library-path=${FLEXJS_HOME}/js/libs/js.swc" >
+         <and>
+             <not>
+                 <isset property="extlib_arg" />
+             </not>
+             <available file="${FLEXJS_HOME}/js/libs/js.swc" type="file" />
+         </and>
+     </condition>
+     <condition property="extlib_arg" value="-external-library-path=${FALCONJX_HOME}/../js/libs/js.swc" >
+         <and>
+             <not>
+                 <isset property="extlib_arg" />
+             </not>
+             <available file="${FALCONJX_HOME}/../js/libs/js.swc" type="file" />
+         </and>
+     </condition>
+     <property name="extlib_arg" value="-external-library-path=${FALCONJX_HOME}/../externs/js/out/bin/js.swc"/>
+ 
 -    <target name="main" depends="clean,build_example.compile,build_example.compilejs,copyassets" description="Clean build of ${example}">
++    <target name="main" depends="clean,build_example.compile,copyassets" description="Clean build of ${example}">
+     </target>
+     
+     <target name="copyassets">
+     	<mkdir dir="${basedir}/bin/js-debug/assets" />
+     	<copy todir="${basedir}/bin/js-debug/assets" >
+             <fileset dir="${basedir}/src/main/resources/assets">
+                 <include name="**" />
+             </fileset>
+         </copy>
+         <mkdir dir="${basedir}/bin/js-release/assets" />
+         <copy todir="${basedir}/bin/js-release/assets" >
+             <fileset dir="${basedir}/src/main/resources/assets">
+                 <include name="**" />
+             </fileset>
+         </copy>
      </target>
      
      <target name="clean">

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/BasicClasses.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/BasicClasses.as
index d709608,a81838b..07bb731
--- a/frameworks/projects/Basic/src/main/flex/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/flex/BasicClasses.as
@@@ -161,7 -152,7 +161,7 @@@ internal class BasicClasse
  	import org.apache.flex.html.supportClasses.DataGroup; DataGroup;
  	import org.apache.flex.html.supportClasses.Viewport; Viewport;
  	import org.apache.flex.html.supportClasses.ScrollingViewport; ScrollingViewport;
--	import org.apache.flex.html.supportClasses.DataGridButtonBarButtonItemRenderer; DataGridButtonBarButtonItemRenderer;
++	import org.apache.flex.html.supportClasses.TextButtonItemRenderer; TextButtonItemRenderer;
  
  	import org.apache.flex.html.DataGridButtonBarTextButton; DataGridButtonBarTextButton;
  	import org.apache.flex.html.DataGridButtonBar; DataGridButtonBar;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
index e4dfb1f,0000000..07859a1
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/GroupBase.as
@@@ -1,280 -1,0 +1,296 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  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.core
 +{
 +	import org.apache.flex.core.IContentViewHost;
 +	import org.apache.flex.core.ILayoutParent;
 +	import org.apache.flex.core.ILayoutHost;
 +	import org.apache.flex.core.ILayoutView;
 +	import org.apache.flex.core.ValuesManager;
 +	import org.apache.flex.events.Event;
 +	import org.apache.flex.events.ValueChangeEvent;
 +	import org.apache.flex.states.State;
 +	import org.apache.flex.utils.MXMLDataInterpreter;
 +
 +    /**
 +     *  Indicates that the state change has completed.  All properties
 +     *  that need to change have been changed, and all transitinos
 +     *  that need to run have completed.  However, any deferred work
 +     *  may not be completed, and the screen may not be updated until
 +     *  code stops executing.
 +     *  
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.8
 +     */
 +    [Event(name="stateChangeComplete", type="org.apache.flex.events.Event")]
 +    
 +    /**
 +     *  Indicates that the initialization of the container is complete.
 +     *  
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.8
 +     */
 +    [Event(name="initComplete", type="org.apache.flex.events.Event")]
 +    
 +    /**
 +     *  Indicates that the children of the container is have been added.
 +     *  
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.8
 +     */
 +    [Event(name="childrenAdded", type="org.apache.flex.events.Event")]
 +    
 +    /**
 +     *  The GroupBase class is the base class for most simple containers
 +     *  in FlexJS.  It is usable as the root tag of MXML
 +     *  documents and UI controls and containers are added to it.
 +     *  
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.8
 +     */
 +	public class GroupBase extends UIBase implements IStatesObject, IContainer, ILayoutParent, ILayoutView, IContentViewHost
 +	{
 +        /**
 +         *  Constructor.
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +		public function GroupBase()
 +		{
 +			super();            
 +		}
 +		
 +		/**
 +		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
 +		 */
 +		COMPILE::JS
 +		override protected function createElement():WrappedHTMLElement
 +		{
 +			element = document.createElement('div') as WrappedHTMLElement;
 +			element.flexjs_wrapper = this;
 +			
 +			positioner = element;
 +			
 +			return element;
 +		}
 +		
++		override public function addedToParent():void
++		{
++			super.addedToParent();
++			
++			// Load the layout bead if it hasn't already been loaded.
++			var layout:IBeadLayout = getBeadByType(IBeadLayout) as IBeadLayout;
++			if (!layout)
++			{
++				var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadLayout") as Class;
++				if (c) {
++					layout = new c() as IBeadLayout;
++					addBead(layout);
++				}
++			}
++		}
++		
 +		/*
 +		 * IContainer
 +		 */
 +        
 +        /**
 +         *  @private
 +         */
 +        public function childrenAdded():void
 +        {
 +            dispatchEvent(new Event("childrenAdded"));
 +        }
 +		
 +		/*
 +		 * Utility
 +		 */
 +		
 +		/**
 +		 * Dispatches a "layoutNeeded" event
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 */
 +		public function layoutNeeded():void
 +		{
 +			dispatchEvent( new Event("layoutNeeded") );
 +		}
 +		
 +		/*
 +		 * ILayoutParent
 +		 */
 +		
 +		/**
 +		 * Returns the ILayoutHost which is its view. From ILayoutParent.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function getLayoutHost():ILayoutHost
 +		{
 +			return view as ILayoutHost;
 +		}
 +		
 +		/**
 +		 * @copy org.apache.flex.core.IContentViewHost#strandChildren
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 */
 +		public function get strandChildren():IParent
 +		{
 +			return this;
 +		}
 +		
 +        private var _states:Array;
 +        
 +        /**
 +         *  The array of view states. These should
 +         *  be instances of org.apache.flex.states.State.
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +        public function get states():Array
 +        {
 +            return _states;
 +        }
 +
 +        /**
 +         *  @private
 +         *  @flexjsignorecoercion Class
 +         *  @flexjsignorecoercion org.apache.flex.core.IBead
 +         */
 +        public function set states(value:Array):void
 +        {
 +            _states = value;
 +            _currentState = _states[0].name;
 +            
 +			try{
 +				if (getBeadByType(IStatesImpl) == null)
 +                {
 +                    var c:Class = ValuesManager.valuesImpl.getValue(this, "iStatesImpl") as Class;
 +                    var b:Object = new c();
 +					addBead(b as IBead);
 +                }
 +			}
 +			//TODO:  Need to handle this case more gracefully
 +			catch(e:Error)
 +			{
 +                COMPILE::SWF
 +                {
 +                    trace(e.message);                        
 +                }
 +			}
 +            
 +        }
 +        
 +        /**
 +         *  <code>true</code> if the array of states
 +         *  contains a state with this name.
 +         * 
 +         *  @param state The state namem.
 +         *  @return True if state in state array
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +        public function hasState(state:String):Boolean
 +        {
 +            for each (var s:State in _states)
 +            {
 +                if (s.name == state)
 +                    return true;
 +            }
 +            return false;
 +        }
 +        
 +        private var _currentState:String;
 +        
 +        [Bindable("currentStateChange")]
 +        /**
 +         *  The name of the current state.
 +         * 
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +        public function get currentState():String
 +        {
 +            return _currentState;   
 +        }
 +
 +        /**
 +         *  @private
 +         */
 +        public function set currentState(value:String):void
 +        {
 +            var event:ValueChangeEvent = new ValueChangeEvent("currentStateChange", false, false, _currentState, value)
 +            _currentState = value;
 +            dispatchEvent(event);
 +        }
 +        
 +        private var _transitions:Array;
 +        
 +        /**
 +         *  The array of transitions.
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +        public function get transitions():Array
 +        {
 +            return _transitions;   
 +        }
 +        
 +        /**
 +         *  @private
 +         */
 +        public function set transitions(value:Array):void
 +        {
 +            _transitions = value;   
 +        }
 +
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
index dde6448,0000000..f23f035
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/core/LayoutBase.as
@@@ -1,166 -1,0 +1,284 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  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.core
 +{
 +
 +	import org.apache.flex.core.IBeadLayout;
 +	import org.apache.flex.core.ILayoutChild;
 +	import org.apache.flex.core.ILayoutHost;
 +	import org.apache.flex.core.ILayoutParent;
 +	import org.apache.flex.core.ILayoutView;
 +	import org.apache.flex.core.IParent;
 +	import org.apache.flex.core.IStrand;
 +	import org.apache.flex.core.ValuesManager;
++	import org.apache.flex.events.IEventDispatcher;
++	import org.apache.flex.events.Event;
 +    import org.apache.flex.utils.CSSUtils;
 +
 +    /**
 +     *  This class is the base class for most, if not all, layouts. 
 +     *
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.8
 +     */
 +	public class LayoutBase implements IBeadLayout
 +	{
 +        /**
 +         *  Constructor.
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +		public function LayoutBase()
 +		{
 +		}
 +
 +        /**
 +		 * The strand/host container is also an ILayoutChild because
 +         * it can have its size dictated by the host's parent which is
 +         * important to know for layout optimization.
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 */
 +        protected var host:ILayoutChild;
 +
 +        /**
 +         *  @copy org.apache.flex.core.IBead#strand
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 * 
 +		 * @flexjsignorecoercion org.apache.flex.core.ILayoutChild
 +         */
 +		public function set strand(value:IStrand):void
 +		{
 +            host = value as ILayoutChild;
++			
++			IEventDispatcher(host).addEventListener("widthChanged", handleSizeChange);
++			IEventDispatcher(host).addEventListener("heightChanged", handleSizeChange);
++			IEventDispatcher(host).addEventListener("sizeChanged", handleSizeChange);
++			
++			IEventDispatcher(host).addEventListener("childrenAdded", handleChildrenAdded);
++			IEventDispatcher(host).addEventListener("initComplete", handleInitComplete);
++			
++			IEventDispatcher(host).addEventListener("layoutNeeded", handleLayoutNeeded);
++		}
++		
++		/**
++		 * Changes in size to the host strand are handled (by default) by running the
++		 * layout sequence. Subclasses can override this function and use event.type
++		 * to handle specific changes in dimension.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++		 */
++		protected function handleSizeChange(event:Event):void
++		{
++			performLayout();
++		}
++		
++		/**
++		 * Handles the addition of children to the host's layoutView by listening for
++		 * size changes in the children.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++		 */
++		protected function handleChildrenAdded(event:Event):void
++		{
++			COMPILE::SWF {
++				var n:Number = layoutView.numElements;
++				for(var i:int=0; i < n; i++) {
++					var child:IEventDispatcher = layoutView.getElementAt(i) as IEventDispatcher;
++					child.addEventListener("widthChanged", childResizeHandler);
++					child.addEventListener("heightChanged", childResizeHandler);
++					child.addEventListener("sizeChanged", childResizeHandler);
++				}
++			}
++		}
++		
++		/**
++		 * If changes happen to a layoutView's child, this function will perform the
++		 * layout again.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++		 */
++		protected function childResizeHandler(event:Event):void
++		{
++			performLayout();
++		}
++		
++		/**
++		 * Called whenever "layoutNeeded" event is dispatched against the host strand.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++		 */
++		protected function handleLayoutNeeded(event:Event):void
++		{
++			performLayout();
++		}
++		
++		/**
++		 * Handles the final start-up condition by running the layout an initial time.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++		 */
++		protected function handleInitComplete(event:Event):void
++		{
++			performLayout();
 +		}
 +		
 +		/**
 +		 * Returns an object of margins for the given child.
 +		 * 
 +		 * @param child Object The element whose margins are required.
 +		 * @param hostWidth Number The usable width dimension of the host.
 +		 * @param hostHeight Number The usable height dimension of the host.
 +		 * 
 +		 * @return Object A structure of {top:Number, left:Number, bottom:Number, right:Number}
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 */
 +		protected function childMargins(child:Object, hostWidth:Number, hostHeight:Number):Object
 +		{
 +			var margin:Object = ValuesManager.valuesImpl.getValue(child, "margin");
 +			var marginLeft:Object = ValuesManager.valuesImpl.getValue(child, "margin-left");
 +			var marginTop:Object = ValuesManager.valuesImpl.getValue(child, "margin-top");
 +			var marginRight:Object = ValuesManager.valuesImpl.getValue(child, "margin-right");
 +			var marginBottom:Object = ValuesManager.valuesImpl.getValue(child, "margin-bottom");
 +			var ml:Number = CSSUtils.getLeftValue(marginLeft, margin, hostWidth);
 +			var mr:Number = CSSUtils.getRightValue(marginRight, margin, hostWidth);
 +			var mt:Number = CSSUtils.getTopValue(marginTop, margin, hostHeight);
 +			var mb:Number = CSSUtils.getBottomValue(marginBottom, margin, hostHeight);
 +			if (marginLeft == "auto")
 +				ml = 0;
 +			if (marginRight == "auto")
 +				mr = 0;
 +			
 +			return {left:ml, top:mt, right:mr, bottom:mb};
 +		}
 +		
 +		/**
 +		 * Returns an object containing the child's positioning values.
 +		 * 
 +		 * @param child Object The element whose positions are required.
 +		 * 
 +		 * @return Object A structure of {top:Number, left:Number, bottom:Number, right:Number}
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 */
 +		protected function childPositions(child:Object):Object
 +		{
 +			var left:Number = ValuesManager.valuesImpl.getValue(child, "left");
 +			var right:Number = ValuesManager.valuesImpl.getValue(child, "right");
 +			var top:Number = ValuesManager.valuesImpl.getValue(child, "top");
 +			var bottom:Number = ValuesManager.valuesImpl.getValue(child, "bottom");
 +			
 +			return {top:top, left:left, bottom:bottom, right:right};
 +		}
 +		
 +		/**
 +		 * Returns the ILayoutView for the host.
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +		 * 
 +		 * @flexjsignorecoercion org.apache.flex.core.ILayoutParent
 +		 */
 +		protected function get layoutView():ILayoutView
 +		{
 +			var viewBead:ILayoutHost = (host as ILayoutParent).getLayoutHost();
 +			return viewBead.contentView;
 +		}
++		
++		private var isLayoutRunning:Boolean = false;
++		
++		/**
++		 * Performs the layout in three parts: before, layout, after.
++         *
++         *  @langversion 3.0
++         *  @playerversion Flash 10.2
++         *  @playerversion AIR 2.6
++         *  @productversion FlexJS 0.8
++		 */
++		public function performLayout():void
++		{
++			// avoid running this layout instance recursively.
++			if (isLayoutRunning) return;
++			
++			isLayoutRunning = true;
++			
++			var viewBead:ILayoutHost = (host as ILayoutParent).getLayoutHost();
++			
++			viewBead.beforeLayout();
++			
++			if (layout()) {
++				viewBead.afterLayout();
++			}
++			
++			isLayoutRunning = false;
++			
++			IEventDispatcher(host).dispatchEvent(new Event("layoutComplete"));
++		}
 +
 +        /**
 +         * @copy org.apache.flex.core.IBeadLayout#layout
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +		public function layout():Boolean
 +		{
 +            // override in subclass
 +			return false;
 +		}
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
index fda1b46,c271134..5a17c4a
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DataGrid.as
@@@ -22,8 -22,7 +22,10 @@@ package org.apache.flex.htm
  	import org.apache.flex.core.IDataGridModel;
  	import org.apache.flex.core.IDataGridPresentationModel;
  	import org.apache.flex.core.UIBase;
++	import org.apache.flex.core.GroupBase;
 +	import org.apache.flex.core.ValuesManager;
  	import org.apache.flex.html.beads.models.DataGridPresentationModel;
++	import org.apache.flex.events.Event;
  	
  	[Event(name="change", type="org.apache.flex.events.Event")]
  	
@@@ -41,7 -39,7 +43,7 @@@
  	 *  @playerversion AIR 2.6
  	 *  @productversion FlexJS 0.0
  	 */
- 	public class DataGrid extends Group
 -	public class DataGrid extends UIBase
++	public class DataGrid extends GroupBase
  	{
  		/**
  		 *  constructor.
@@@ -160,24 -143,24 +162,10 @@@
  			presentationModel.rowHeight = value;
  		}
  		
--		/**
--		 * @private
--		 * The DataGrid needs to know whenever its size is being changed so the columns can be
--		 * be aligned properly, so the noEvent value must always be false.
--		 */
--		override public function setWidth(value:Number, noEvent:Boolean=false):void
--		{
--			super.setWidth(value,false);
--		}
--		
--		/**
--		 * @private
--		 * The DataGrid needs to know whenever its size is being changed so the columns can be
--		 * be aligned properly, so the noEvent value must always be false.
--		 */
--		override public function setHeight(value:Number, noEvent:Boolean=false):void
++		override public function addedToParent():void
  		{
--			super.setHeight(value,false);
++			super.addedToParent();
++			dispatchEvent(new Event("initComplete"));
  		}
  	}
  }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
index f46e453,ca142ba..5b73db0
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/DateField.as
@@@ -33,6 -34,6 +34,7 @@@ package org.apache.flex.htm
  	 * and a pop-up calendar control for picking a date as an alternative to
  	 * the text field.
  	 *  
++     *  @toplevel
  	 *  @langversion 3.0
  	 *  @playerversion Flash 10.2
  	 *  @playerversion AIR 2.6

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
index bc9f89d,0000000..85e2b79
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
@@@ -1,66 -1,0 +1,66 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  Licensed to the Apache Software Foundation (ASF) under one or more
 +//  contributor license agreements.  See the NOTICE file distributed with
 +//  this work for additional information regarding copyright ownership.
 +//  The ASF licenses this file to You under the Apache License, Version 2.0
 +//  (the "License"); you may not use this file except in compliance with
 +//  the License.  You may obtain a copy of the License at
 +//
 +//      http://www.apache.org/licenses/LICENSE-2.0
 +//
 +//  Unless required by applicable law or agreed to in writing, software
 +//  distributed under the License is distributed on an "AS IS" BASIS,
 +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +//  See the License for the specific language governing permissions and
 +//  limitations under the License.
 +//
 +////////////////////////////////////////////////////////////////////////////////
 +package org.apache.flex.html.beads
 +{		
 +	import org.apache.flex.events.Event;
 +	import org.apache.flex.html.supportClasses.ICollapsible;
 +    
 +	/**
 +	 * This class creates and manages the contents of an AccordionItemItemRenderer
 +     *  
 +	 *  @viewbead
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.0
 +	 */
 +	public class AccordionItemRendererView extends PanelView
 +	{
 +		/**
 +     	 *  The AccordionItemRendererView class is the default view for
 +         *  the org.apache.flex.html.supportClasses.AccordionItemRenderer classes.
 +         *  It provides some layout optimizations that can be attained by assuming
 +		 *  the strand to be an org.apache.flex.html.supportClasses.ICollapsible.
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.0
 +         */
 +		public function AccordionItemRendererView()
 +		{
 +			super();
 +		}
 +		
 +		override protected function performLayout(event:Event):void
 +		{
 +			var collapsibleStrand:ICollapsible = _strand as ICollapsible;
 +			if (!collapsibleStrand.collapsed)
 +			{
 +				super.performLayout(event);
 +			} else // skip layout for viewport children
 +			{
 +				COMPILE::SWF {
 +				// no longer needed layoutViewBeforeContentLayout();
- 				layoutViewAfterContentLayout();
++				afterLayout();
 +				}
 +			}
 +		}
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
index 4de5634,d62e799..ac723a9
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/ContainerView.as
@@@ -160,15 -274,49 +160,15 @@@ package org.apache.flex.html.bead
  		 *  @playerversion AIR 2.6
  		 *  @productversion FlexJS 0.0
  		 */
 -		protected function completeSetup():void
 +		override protected function completeSetup():void
  		{
 +			super.completeSetup();
 +
  			// when the first layout is complete, set up listeners for changes
  			// to the childrens' sizes.
--			host.addEventListener("layoutComplete", childrenChangedHandler);
 -			
 -			host.addEventListener("childrenAdded", performLayout);
 -			host.addEventListener("layoutNeeded", performLayout);
 -			host.addEventListener("widthChanged", resizeHandler);
 -			host.addEventListener("heightChanged", resizeHandler);
 -			host.addEventListener("sizeChanged", resizeHandler);
 -			host.addEventListener("viewCreated", viewCreatedHandler);
 -		}
 -		
 -		/**
 -		 * Handles the viewCreated event by performing the first layout if
 -		 * there are children already present (ie, from MXML).
 -		 *  
 -		 *  @langversion 3.0
 -		 *  @playerversion Flash 10.2
 -		 *  @playerversion AIR 2.6
 -		 *  @productversion FlexJS 0.0
 -		 */
 -		protected function viewCreatedHandler(event:Event):void
 -		{			
 -			if ((host as UIBase).numElements > 0) {
 -				performLayout(null);
 -			}
++//			host.addEventListener("layoutComplete", childrenChangedHandler);
  		}
 -		
 -        /**
 -         * Calculate the space taken up by non-content children like a TItleBar in a Panel.
 -         *  
 -         *  @langversion 3.0
 -         *  @playerversion Flash 10.2
 -         *  @playerversion AIR 2.6
 -         *  @productversion FlexJS 0.0
 -         */
 -        protected function getChromeMetrics():Rectangle
 -        {
 -            return new Rectangle(0, 0, 0, 0);
 -        }
 -        
 +
  		/**
  		 * Creates the Viewport (or ScrollableViewport) through which the content
  		 * area is presented.
@@@ -229,22 -391,32 +229,22 @@@
  		 *  @playerversion AIR 2.6
  		 *  @productversion FlexJS 0.0
  		 */
- 		override protected function layoutViewBeforeContentLayout():void
 -		protected function performLayout(event:Event):void
++		override public function beforeLayout():void
  		{
 -			layoutRunning = true;
 -			
 -			layoutViewBeforeContentLayout();
 -			
 -			var host:UIBase = _strand as UIBase;
 -			
 -			var layout:IBeadLayout = _strand.getBeadByType(IBeadLayout) as IBeadLayout;
 -			if (layout == null) {
 -				var c:Class = ValuesManager.valuesImpl.getValue(host, "iBeadLayout");
 -				if (c) {
 -					layout = new c() as IBeadLayout;
 -					_strand.addBead(layout);
 -				}
 -			}
 -			
 -			if (layout) {
 -				layout.layout();
 -			}
 -			
 -			layoutViewAfterContentLayout();
 -			
 -			layoutRunning = false;
 +            var host:ILayoutChild = this.host as ILayoutChild;
 +            var vm:IViewportModel = viewportModel;
 +			var hostWidth:Number = host.width;
 +			var hostHeight:Number = host.height;
 +
 +            vm.borderMetrics = CSSContainerUtils.getBorderMetrics(host);
 +
 +            viewport.setPosition(vm.borderMetrics.left, vm.borderMetrics.top);
 +
 +			viewport.layoutViewportBeforeContentLayout(
 +				host.isWidthSizedToContent() ? NaN : hostWidth - vm.borderMetrics.left - vm.borderMetrics.right,
 +				host.isHeightSizedToContent() ? NaN : hostHeight - vm.borderMetrics.top - vm.borderMetrics.bottom);
  		}
 -		
 +
  		/**
  		 * @private
  		 */
@@@ -259,20 -431,35 +259,20 @@@
  		 *  @playerversion AIR 2.6
  		 *  @productversion FlexJS 0.0
  		 */
- 		override protected function layoutViewAfterContentLayout():void
 -		protected function layoutViewAfterContentLayout():void
++		override public function afterLayout():void
  		{
 -			var host:UIBase = _strand as UIBase;
 -            var vm:IViewportModel = viewportModel;
 -            
 +			if (adjusting) return;
 +
  			adjusting = true;
 -			
 -            var viewportSize:Size = viewport.layoutViewportAfterContentLayout();
 -            
 -			if (host.isWidthSizedToContent() && host.isHeightSizedToContent()) {					
 -				host.setWidthAndHeight(viewportSize.width + vm.borderMetrics.left + vm.borderMetrics.right +
 -                                           vm.chromeMetrics.left + vm.chromeMetrics.right, 
 -					                   viewportSize.height + vm.borderMetrics.top + vm.borderMetrics.bottom +
 -                                           vm.chromeMetrics.top + vm.chromeMetrics.bottom,
 -                                       false);
 -			}
 -			else if (!host.isWidthSizedToContent() && host.isHeightSizedToContent())
 -			{
 -				host.setHeight(viewportSize.height + vm.borderMetrics.top + vm.borderMetrics.bottom +
 -                    vm.chromeMetrics.top + vm.chromeMetrics.bottom, false);
 -			}
 -			else if (host.isWidthSizedToContent() && !host.isHeightSizedToContent())
 -			{
 -				host.setWidth(viewportSize.width + vm.borderMetrics.left + vm.borderMetrics.right +
 -                    vm.chromeMetrics.left + vm.chromeMetrics.right, false);
 -			}			
 +
- 			super.layoutViewAfterContentLayout();
++			super.afterLayout();
 +
 +			var contentSize:Size = calculateContentSize();
 +			viewport.layoutViewportAfterContentLayout(contentSize);
 +
  			adjusting = false;
  		}
 -		
 +
  		/**
  		 * Handles dynamic changes to the host's size by running the layout once
  		 * the viewport has been adjusted.
@@@ -282,54 -469,11 +282,54 @@@
  		 *  @playerversion AIR 2.6
  		 *  @productversion FlexJS 0.0
  		 */
- 		override protected function resizeHandler(event:Event):void
- 		{
- 			if (!adjusting) {
- 				performLayout(event);
- 			}
- 		}
 -		protected function resizeHandler(event:Event):void
++//		override protected function resizeHandler(event:Event):void
++//		{
++//			if (!adjusting) {
++//				performLayout(event);
++//			}
++//		}
 +
 +		/**
 +		 * Whenever children are added, listeners are added to detect changes
 +		 * in their size.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.0
 +		 */
- 		protected function childrenChangedHandler(event:Event):void
- 		{
- 			var host:UIBase = _strand as UIBase;
- 			host.removeEventListener(event.type, childrenChangedHandler);
- 
- 			var n:Number = contentView.numElements;
- 			for (var i:int=0; i < n; i++) {
- 				var child:IUIBase = contentView.getElementAt(i) as IUIBase;
- 				child.addEventListener("widthChanged", childResizeHandler);
- 				child.addEventListener("heightChanged", childResizeHandler);
- 				child.addEventListener("sizeChanged", childResizeHandler);
- 			}
- 		}
++//		protected function childrenChangedHandler(event:Event):void
++//		{
++//			var host:UIBase = _strand as UIBase;
++//			host.removeEventListener(event.type, childrenChangedHandler);
++//
++//			var n:Number = contentView.numElements;
++//			for (var i:int=0; i < n; i++) {
++//				var child:IUIBase = contentView.getElementAt(i) as IUIBase;
++//				child.addEventListener("widthChanged", childResizeHandler);
++//				child.addEventListener("heightChanged", childResizeHandler);
++//				child.addEventListener("sizeChanged", childResizeHandler);
++//			}
++//		}
 +	}
 +
 +	COMPILE::JS
 +	public class ContainerView extends GroupView //??implements IParent
 +	{
 +		private var _viewport:IViewport;
 +
 +		/**
 +		 * The viewport used to present the content and may display
 +		 * scroll bars (depending on the actual type of viewport).
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.0
 +		 */
 +		protected function get viewport():IViewport
  		{
 -			if (!adjusting) {
 -				performLayout(event);
 -			}
 +			return _viewport;
  		}
  		
  		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
index 36ed489,0000000..fc5f3a2
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataContainerView.as
@@@ -1,230 -1,0 +1,233 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  Licensed to the Apache Software Foundation (ASF) under one or more
 +//  contributor license agreements.  See the NOTICE file distributed with
 +//  this work for additional information regarding copyright ownership.
 +//  The ASF licenses this file to You under the Apache License, Version 2.0
 +//  (the "License"); you may not use this file except in compliance with
 +//  the License.  You may obtain a copy of the License at
 +//
 +//      http://www.apache.org/licenses/LICENSE-2.0
 +//
 +//  Unless required by applicable law or agreed to in writing, software
 +//  distributed under the License is distributed on an "AS IS" BASIS,
 +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +//  See the License for the specific language governing permissions and
 +//  limitations under the License.
 +//
 +////////////////////////////////////////////////////////////////////////////////
 +package org.apache.flex.html.beads
 +{	
 +	import org.apache.flex.core.BeadViewBase;
 +	import org.apache.flex.core.ContainerBase;
 +	import org.apache.flex.core.IBead;
 +	import org.apache.flex.core.IBeadLayout;
 +	import org.apache.flex.core.IBeadModel;
 +	import org.apache.flex.core.IBeadView;
- 	import org.apache.flex.core.IList;
- 	import org.apache.flex.core.ISelectableItemRenderer;
++	import org.apache.flex.core.IDataProviderModel;
 +	import org.apache.flex.core.IItemRenderer;
 +	import org.apache.flex.core.IItemRendererParent;
++	import org.apache.flex.core.IList;
 +	import org.apache.flex.core.IParent;
-     import org.apache.flex.core.IParentIUIBase;
- 	import org.apache.flex.core.IDataProviderModel;
++	import org.apache.flex.core.IParentIUIBase;
++	import org.apache.flex.core.ISelectableItemRenderer;
 +	import org.apache.flex.core.ISelectionModel;
 +	import org.apache.flex.core.IStrand;
-     import org.apache.flex.core.IUIBase;
++	import org.apache.flex.core.IUIBase;
++	import org.apache.flex.core.LayoutBase;
 +	import org.apache.flex.core.Strand;
 +	import org.apache.flex.core.UIBase;
 +	import org.apache.flex.core.ValuesManager;
 +	import org.apache.flex.events.Event;
 +	import org.apache.flex.events.IEventDispatcher;
 +	import org.apache.flex.html.beads.models.ScrollBarModel;
 +	import org.apache.flex.html.beads.models.SingleLineBorderModel;
 +	import org.apache.flex.html.supportClasses.Border;
 +	import org.apache.flex.html.supportClasses.DataGroup;
 +	import org.apache.flex.html.supportClasses.ScrollBar;
 +
 +	/**
 +	 *  The DataContainerView provides the visual elements for the DataContainer.
 +	 *  
 +	 *  @viewbead
 +	 *  @langversion 3.0
 +	 *  @playerversion Flash 10.2
 +	 *  @playerversion AIR 2.6
 +	 *  @productversion FlexJS 0.8
 +	 */
 +	COMPILE::JS
 +	public class DataContainerView extends ContainerView implements IListView
 +	{
 +		public function DataContainerView()
 +		{
 +			super();
 +		}
 +		
 +		/**
 +		 *  @copy org.apache.flex.core.IBead#strand
 +		 *  
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		override public function set strand(value:IStrand):void
 +		{
 +			_strand = value;
 +			super.strand = value;
 +			
 +			host.addEventListener("beadsAdded", beadsAddedHandler);
 +		}
 +		
 +		protected var dataModel:IDataProviderModel;
 +		
 +		/**
 +		 * @flexjsignorecoercion org.apache.flex.core.IItemRendererParent
 +		 */
 +		public function get dataGroup():IItemRendererParent
 +		{
 +			return super.contentView as IItemRendererParent;
 +		}
 +		
 +		protected function beadsAddedHandler(event:Event):void
 +		{
 +			dataModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
 +			host.addEventListener("itemsCreated", itemsCreatedHandler);
 +			dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
 +		}
 +		
 +		/**
 +		 * @private
 +		 */
 +		override protected function handleInitComplete(event:Event):void
 +		{
 +			super.handleInitComplete(event);
 +		}
 +		
 +		/**
 +		 * @private
 +		 */
 +		protected function itemsCreatedHandler(event:Event):void
 +		{
- 			performLayout(event);
++			trace("DataContainerView: itemsCreatedHandler");
++			host.dispatchEvent(new Event("layoutNeeded"));
 +		}
 +		
 +		/**
 +		 * @private
 +		 */
 +		protected function dataProviderChangeHandler(event:Event):void
 +		{
++			trace("DataContainerView: dataProviderChangeHandler");
 +			performLayout(event);
 +		}
 +	}
 +	
 +	COMPILE::SWF
 +	public class DataContainerView extends ContainerView implements IListView
 +	{
 +		public function DataContainerView()
 +		{
 +			super();
 +		}
 +						
 +		protected var dataModel:IDataProviderModel;
 +		
 +		/**
 +		 * @private
 +		 */
 +		override public function get host():IUIBase
 +		{
 +			return _strand as IUIBase;
 +		}
 +		
 +		/**
 +		 *  @copy org.apache.flex.core.IBead#strand
 +		 *  
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		override public function set strand(value:IStrand):void
 +		{
 +			_strand = value;
 +			super.strand = value;
 +			
 +			host.addEventListener("beadsAdded", beadsAddedHandler);
++			host.addEventListener("itemsCreated", itemsCreatedHandler);
 +		}
 +		
 +		override protected function completeSetup():void
 +		{
 +			super.completeSetup();
 +			
 +			// list is not interested in UI children, it wants to know when new items
 +			// have been added or the dataProvider has changed.
- 			host.removeEventListener("childrenAdded", childrenChangedHandler);
- 			host.removeEventListener("childrenAdded", performLayout);
- 			host.addEventListener("itemsCreated", itemsCreatedHandler);
++//			host.removeEventListener("childrenAdded", childrenChangedHandler);
++//			host.removeEventListener("childrenAdded", performLayout);
 +		}
 +		
 +		protected function beadsAddedHandler(event:Event):void
 +		{
 +			dataModel = _strand.getBeadByType(IDataProviderModel) as IDataProviderModel;
 +			dataModel.addEventListener("dataProviderChanged", dataProviderChangeHandler);
 +		}
 +		
 +		override protected function handleInitComplete(event:Event):void
 +		{
 +			super.handleInitComplete(event);
 +		}
 +		
 +		/**
 +		 *  The area holding the itemRenderers.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get dataGroup():IItemRendererParent
 +		{
 +			return super.contentView as IItemRendererParent;
 +		}
 +				
 +		/**
 +		 * @private
 +		 */
 +		override public function get resizableView():IUIBase
 +		{
 +			return _strand as IUIBase;
 +		}
 +		
 +		/**
 +		 * @private
 +		 */
 +		protected function itemsCreatedHandler(event:Event):void
 +		{
- 			performLayout(event);
++			host.dispatchEvent(new Event("layoutNeeded"));
 +		}
 +		
 +		/**
 +		 * @private
 +		 */
 +		protected function dataProviderChangeHandler(event:Event):void
 +		{
- 			performLayout(event);
++			host.dispatchEvent(new Event("layoutNeeded"));
 +		}
 +		        
 +        /**
 +         *  respond to a change in size or request to re-layout everything
 +         *  
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.0
 +         */
 +		override protected function resizeHandler(event:Event):void
 +		{
 +			// might need to do something here, not sure yet.
 +			super.resizeHandler(event);
 +		}
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataGridView.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataGridView.as
index 68e5d95,8393057..3b387d9
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataGridView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataGridView.as
@@@ -52,249 -115,152 +52,249 @@@ package org.apache.flex.html.bead
  		 *  @playerversion AIR 2.6
  		 *  @productversion FlexJS 0.0
  		 */
 -		public function set strand(value:IStrand):void
 +		public class DataGridView extends GroupView implements IBeadView
  		{
 -			_strand = value;
 -
 -			var host:UIBase = value as UIBase;
 -
 -			_header = new DataGridButtonBar();
 -			_header.id = "dataGridHeader";
 -
 -			var scrollPort:ScrollingViewport = new ScrollingViewport();
 -
 -			_listArea = new Container();
 -			_listArea.id = "dataGridListArea";
 -			_listArea.className = "DataGridListArea";
 -			_listArea.addBead(scrollPort);
 +			/**
 +			 *  constructor.
 +			 *
 +			 *  @langversion 3.0
 +			 *  @playerversion Flash 10.2
 +			 *  @playerversion AIR 2.6
 +			 *  @productversion FlexJS 0.0
 +			 */
 +			public function DataGridView()
 +			{
 +				super();
 +			}
  			
 -			if (_strand.getBeadByType(IBeadLayout) == null) {
 -				var c:Class = ValuesManager.valuesImpl.getValue(host, "iBeadLayout");
 -				if (c)
 -				{
 -					var layout:IBeadLayout = new c() as IBeadLayout;
 -					_strand.addBead(layout);
 +			private var _strand:IStrand;
 +			private var _header:DataGridButtonBar;
 +			private var _listArea:Container;
 +			
 +			private var _lists:Array;
 +			
 +			/**
 +			 * An array of List objects the comprise the columns of the DataGrid.
 +			 */
 +			public function get columnLists():Array
 +			{
 +				return _lists;
 +			}
 +			
 +			/**
 +			 * The area used to hold the columns
 +			 *
 +			 */
 +			public function get listArea():Container
 +			{
 +				return _listArea;
 +			}
 +			
 +			/**
 +			 * Returns the component used as the header for the DataGrid.
 +			 */
 +			public function get header():IUIBase
 +			{
 +				return _header;
 +			}
 +			
 +			/**
 +			 *  @copy org.apache.flex.core.IBead#strand
 +			 *
 +			 *  @langversion 3.0
 +			 *  @playerversion Flash 10.2
 +			 *  @playerversion AIR 2.6
 +			 *  @productversion FlexJS 0.0
 +			 */
 +			override public function set strand(value:IStrand):void
 +			{
 +				super.strand = value;
 +				_strand = value;
 +				
 +				var host:DataGrid = value as DataGrid;
 +				
 +				_header = new DataGridButtonBar();
 +				_header.height = 30;
 +				_header.percentWidth = 100;
 +				
 +				_listArea = new Container();
 +				_listArea.percentWidth = 100;
 +				_listArea.className = "DataGridListArea";
 +				
 +				COMPILE::SWF {
 +					_header.style = new SimpleCSSStyles();
 +					_header.style.flexGrow = 0;
 +					
 +					_listArea.style = new SimpleCSSStyles();
 +					_listArea.style.flexGrow = 1;
  				}
 +				COMPILE::JS {
 +					_header.element.style["flex-grow"] = "0";
 +					_header.element.style["min-height"] = "30px";
 +					_listArea.element.style["flex-grow"] = "1";
 +				}
 +				
- 				IEventDispatcher(_strand).addEventListener("initComplete", finishSetup);
++				IEventDispatcher(_strand).addEventListener("beadsAdded", finishSetup);
  			}
 -
 -			finishSetup(null);
 -		}
 -
 -		/**
 -		 * @private
 -		 */
 -		private function finishSetup(event:Event):void
 -		{
 -			var host:UIBase = _strand as UIBase;
 -
 -			// see if there is a presentation model already in place. if not, add one.
 -			var presentationModel:DataGridPresentationModel = _strand.getBeadByType(DataGridPresentationModel) as DataGridPresentationModel;
 -			if (presentationModel == null) {
 -				presentationModel = new DataGridPresentationModel();
 -				_strand.addBead(presentationModel);
 +			
 +			/**
 +			 * @private
 +			 */
 +			private function finishSetup(event:Event):void
 +			{
 +				var host:DataGrid = _strand as DataGrid;
 +				
 +				if (_lists == null || _lists.length == 0) {
 +					createLists();
 +				}
 +				
 +				// see if there is a presentation model already in place. if not, add one.
 +				var presentationModel:IDataGridPresentationModel = host.presentationModel;
 +				var sharedModel:IDataGridModel = host.model as IDataGridModel;
 +				IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",handleDataProviderChanged);
 +				IEventDispatcher(sharedModel).addEventListener("selectedIndexChanged", handleSelectedIndexChanged);
 +				
 +				var columnLabels:Array = new Array();
 +				var buttonWidths:Array = new Array();
 +				
 +				var marginBorderOffset:int = 0;
 +				COMPILE::SWF {
 +					marginBorderOffset = 1;
 +				}
 +					
 +				for(var i:int=0; i < sharedModel.columns.length; i++) {
 +					var dgc:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
 +					columnLabels.push(dgc.label);
 +					var colWidth:Number = dgc.columnWidth - marginBorderOffset;
 +					buttonWidths.push(colWidth);
 +					
 +					var list:DataGridColumnList = _lists[i] as DataGridColumnList;
 +					if (!isNaN(colWidth)) {
 +						list.width = Number(colWidth - marginBorderOffset);
 +					} else {
 +						COMPILE::SWF {
 +							list.style = new SimpleCSSStyles();
 +							list.style.flexGrow = 1;
 +						}
 +							COMPILE::JS {
 +								list.element.style["flex-grow"] = "1";
 +							}
 +					}
 +				}
 +					
 +				var bblayout:ButtonBarLayout = new ButtonBarLayout();
 +				_header.buttonWidths = buttonWidths
 +				_header.widthType = ButtonBarModel.PIXEL_WIDTHS;
 +				_header.dataProvider = columnLabels;
 +				_header.addBead(bblayout);
 +				_header.addBead(new Viewport());
 +				host.addElement(_header);
 +				
 +				host.addElement(_listArea);
 +				
 +				handleDataProviderChanged(event);
 +				
 +				host.addEventListener("widthChanged", handleSizeChanges);
 +				host.addEventListener("heightChanged", handleSizeChanges);
  			}
 -
 -			var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 -			IEventDispatcher(sharedModel).addEventListener("dataProviderChanged",handleDataProviderChanged);
 -
 -			var columnLabels:Array = new Array();
 -
 -			for(var i:int=0; i < sharedModel.columns.length; i++) {
 -				var dgc:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
 -				columnLabels.push(dgc.label);
 +			
 +			/**
 +			 * @private
 +			 */
 +			private function handleSizeChanges(event:Event):void
 +			{	
 +				_header.dispatchEvent(new Event("layoutChanged"));
 +				_listArea.dispatchEvent(new Event("layoutChanged"));
  			}
 -
 -			var bblayout:ButtonBarLayout = new ButtonBarLayout();
 -			var buttonBarModel:ArraySelectionModel = new ArraySelectionModel();
 -			buttonBarModel.dataProvider = columnLabels;
 -
 -			_header.addBead(buttonBarModel);
 -			_header.addBead(bblayout);
 -			_header.addBead(new Viewport());
 -			host.addElement(_header);
 -
 -			host.addElement(_listArea);
 -
 -			handleDataProviderChanged(event);
 -		}
 -
 -		/**
 -		 * @private
 -		 */
 -		private function handleSizeChanges(event:Event):void
 -		{	
 -			var layoutBead:IDataGridLayout = _strand.getBeadByType(IBeadLayout) as IDataGridLayout;
 -			layoutBead.header = _header;
 -			layoutBead.columns = _lists;
 -			layoutBead.listArea = _listArea;
 -			layoutBead.layout();
 -		}
 -
 -		/**
 -		 * @private
 -		 */
 -		private function handleDataProviderChanged(event:Event):void
 -		{
 -			var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 -
 -			if (_lists == null || _lists.length == 0) {
 -				createLists();
 +			
 +			/**
 +			 * @private
 +			 */
 +			private function handleDataProviderChanged(event:Event):void
 +			{
 +				var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 +				
 +				for (var i:int=0; i < _lists.length; i++)
 +				{
 +					var list:DataGridColumnList = _lists[i] as DataGridColumnList;
 +					var listModel:ISelectionModel = list.getBeadByType(IBeadModel) as ISelectionModel;
 +					listModel.dataProvider = sharedModel.dataProvider;
 +				}
 +				
 +				host.dispatchEvent(new Event("layoutNeeded"));
  			}
 -
 -			for (var i:int=0; i < _lists.length; i++)
 +			
 +			/**
 +			 * @private
 +			 */
 +			private function handleSelectedIndexChanged(event:Event):void
  			{
 -				var list:DataGridColumnList = _lists[i] as DataGridColumnList;
 -				var listModel:ISelectionModel = list.getBeadByType(IBeadModel) as ISelectionModel;
 -				listModel.dataProvider = sharedModel.dataProvider;
 +				var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 +				var newIndex:int = sharedModel.selectedIndex;
 +				
 +				for (var i:int=0; i < _lists.length; i++)
 +				{
 +					var list:DataGridColumnList = _lists[i] as DataGridColumnList;
 +					list.selectedIndex = newIndex;
 +				}
  			}
 -
 -			host.dispatchEvent(new Event("layoutNeeded"));
 -		}
 -
 -		/**
 -		 * @private
 -		 */
 -		private function handleColumnListChange(event:Event):void
 -		{
 -			var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 -			var list:DataGridColumnList = event.target as DataGridColumnList;
 -			sharedModel.selectedIndex = list.selectedIndex;
 -
 -			for(var i:int=0; i < _lists.length; i++) {
 -				if (list != _lists[i]) {
 -					var otherList:DataGridColumnList = _lists[i] as DataGridColumnList;
 -					otherList.selectedIndex = list.selectedIndex;
 +			
 +			/**
 +			 * @private
 +			 */
 +			private function handleColumnListChange(event:Event):void
 +			{
 +				var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 +				var list:DataGridColumnList = event.target as DataGridColumnList;
 +				sharedModel.selectedIndex = list.selectedIndex;
 +				
 +				for(var i:int=0; i < _lists.length; i++) {
 +					if (list != _lists[i]) {
 +						var otherList:DataGridColumnList = _lists[i] as DataGridColumnList;
 +						otherList.selectedIndex = list.selectedIndex;
 +					}
  				}
 +				
 +				host.dispatchEvent(new Event('change'));
  			}
 -
 -			host.dispatchEvent(new Event('change'));
 -		}
 -
 -		/**
 -		 * @private
 -		 */
 -		private function createLists():void
 -		{
 -			var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;
 -			var presentationModel:DataGridPresentationModel = _strand.getBeadByType(DataGridPresentationModel) as DataGridPresentationModel;
 -			var listWidth:Number = host.width / sharedModel.columns.length;
 -
 -			_lists = new Array();
 -
 -			for (var i:int=0; i < sharedModel.columns.length; i++) {
 -				var dataGridColumn:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
 -
 -				var list:DataGridColumnList = new DataGridColumnList();
 -				list.id = "dataGridColumn"+String(i);
 -				list.addBead(sharedModel);
 -				list.itemRenderer = dataGridColumn.itemRenderer;
 -				list.labelField = dataGridColumn.dataField;
 -				list.addEventListener('change',handleColumnListChange);
 -				list.addBead(presentationModel);
 -
 -				_listArea.addElement(list);
 -				_lists.push(list);
 +			
 +			/**
 +			 * @private
 +			 */
 +			private function createLists():void
 +			{
 +				var host:DataGrid = _strand as DataGrid;
 +				
 +				var sharedModel:IDataGridModel = host.model as IDataGridModel;
 +				var presentationModel:IDataGridPresentationModel = host.presentationModel;
 +				
 +				_lists = new Array();
 +				
 +				for (var i:int=0; i < sharedModel.columns.length; i++) {
 +					var dataGridColumn:DataGridColumn = sharedModel.columns[i] as DataGridColumn;
 +					
 +					var list:DataGridColumnList = new DataGridColumnList();
 +					list.id = "dataGridColumn"+String(i);
 +					list.addBead(sharedModel);
 +					list.itemRenderer = dataGridColumn.itemRenderer;
 +					list.labelField = dataGridColumn.dataField;
 +					list.addEventListener('change',handleColumnListChange);
 +					list.addBead(presentationModel);
 +					
 +					if (i == 0) {
 +						list.className = "first";
 +					} else if (i == sharedModel.columns.length-1) {
 +						list.className = "last";
 +					} else {
 +						list.className = "middle";
 +					}
 +					
 +					_listArea.addElement(list);
 +					_lists.push(list);
 +				}
 +				
 +				host.dispatchEvent(new Event("layoutNeeded"));
  			}
 -
 -			host.dispatchEvent(new Event("layoutNeeded"));
  		}
 -	}
  }
  

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/GroupView.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/GroupView.as
index c3351a5,0000000..2a982c2
mode 100644,000000..100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/GroupView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/GroupView.as
@@@ -1,429 -1,0 +1,344 @@@
 +////////////////////////////////////////////////////////////////////////////////
 +//
 +//  Licensed to the Apache Software Foundation (ASF) under one or more
 +//  contributor license agreements.  See the NOTICE file distributed with
 +//  this work for additional information regarding copyright ownership.
 +//  The ASF licenses this file to You under the Apache License, Version 2.0
 +//  (the "License"); you may not use this file except in compliance with
 +//  the License.  You may obtain a copy of the License at
 +//
 +//      http://www.apache.org/licenses/LICENSE-2.0
 +//
 +//  Unless required by applicable law or agreed to in writing, software
 +//  distributed under the License is distributed on an "AS IS" BASIS,
 +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +//  See the License for the specific language governing permissions and
 +//  limitations under the License.
 +//
 +////////////////////////////////////////////////////////////////////////////////
 +package org.apache.flex.html.beads
 +{
 +	import org.apache.flex.core.BeadViewBase;
 +	import org.apache.flex.core.IBead;
 +	import org.apache.flex.core.IBeadLayout;
 +	import org.apache.flex.core.IBeadView;
 +	import org.apache.flex.core.ILayoutChild;
 +	import org.apache.flex.core.ILayoutHost;
 +	import org.apache.flex.core.ILayoutView;
 +	import org.apache.flex.core.IStrand;
 +	import org.apache.flex.core.IUIBase;
 +	import org.apache.flex.core.UIBase;
 +	import org.apache.flex.core.ValuesManager;
 +	import org.apache.flex.events.Event;
 +	import org.apache.flex.events.IEventDispatcher;
 +
 +	COMPILE::SWF {
 +		import org.apache.flex.geom.Size;
 +		import org.apache.flex.geom.Rectangle;
 +		import org.apache.flex.utils.CSSContainerUtils;
 +	}
 +
 +	/**
 +	 *  The GroupView is a bead that manages the layout bead (if any) attached to a Group. This class
 +	 *  also provides support for background and border styles for a Group on the SWF platform.
 +     *
 +	 *  @viewbead
 +     *  @langversion 3.0
 +     *  @playerversion Flash 10.2
 +     *  @playerversion AIR 2.6
 +     *  @productversion FlexJS 0.8
 +	 */
 +	public class GroupView extends BeadViewBase implements IBeadView, ILayoutHost
 +	{
 +		/**
 +     	 *  The GroupView class is the default view for
 +         *  the org.apache.flex.html.Group class.
 +         *  It lets you use some CSS styles to manage the border, background
 +         *  and padding around the content area.
 +         *
 +         *  @langversion 3.0
 +         *  @playerversion Flash 10.2
 +         *  @playerversion AIR 2.6
 +         *  @productversion FlexJS 0.8
 +         */
 +		public function GroupView()
 +		{
 +			super();
 +
 +			layoutRunning = false;
 +		}
 +
 +		/**
 +		 * The sub-element used as the parent of the container's elements. This does not
 +		 * include the chrome elements.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get contentView():ILayoutView
 +		{
 +			return host as ILayoutView;
 +		}
 +
 +		/**
 +		 * The view that can be resized.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		public function get resizableView():IUIBase
 +		{
 +			return host;
 +		}
 +
 +
 +		private var layoutRunning:Boolean;
 +
 +		/**
 +		 * Strand setter.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		override public function set strand(value:IStrand):void
 +		{
 +			_strand = value;
 +			super.strand = value;
 +
 +			COMPILE::SWF {
 +				displayBackgroundAndBorder(host as UIBase);
 +			}
 +
 +			// listen for initComplete to signal that the strand has been initialized
 +			// with its beads and children.
 +			host.addEventListener("initComplete", handleInitComplete);
- 			
- 			// listen for when children have been added so additional event listeners
- 			// can be placed upon them.
- 			host.addEventListener("childrenAdded", handleChildrenAdded);
- 			
- 			// listen for requests to run the layout.
- 			host.addEventListener("layoutNeeded", performLayout);
 +		}
 +
 +		/**
 +		 * Handles the initComplete event by completing the setup and kicking off the
 +		 * presentation of the contents.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		protected function handleInitComplete(event:Event):void
 +		{
 +            var ilc:ILayoutChild = host as ILayoutChild;
 +			// Complete the setup if the height is sized to content or has been explicitly set
 +            // and the width is sized to content or has been explicitly set
 +			if ((ilc.isHeightSizedToContent() || !isNaN(ilc.explicitHeight) || !isNaN(ilc.percentHeight)) &&
 +                (ilc.isWidthSizedToContent() || !isNaN(ilc.explicitWidth) || !isNaN(ilc.percentWidth))) {
 +				completeSetup();
 +			}
 +			else {
 +				// otherwise, wait until the unknown sizes have been set and then finish
 +				host.addEventListener("sizeChanged", deferredSizeHandler);
 +                host.addEventListener("widthChanged", deferredSizeHandler);
 +                host.addEventListener("heightChanged", deferredSizeHandler);
 +			}
 +		}
 +
 +		/**
 +		 * Handles the case where the size of the host is not immediately known, usually do
 +		 * to one of its dimensions being indicated as a percent size.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		protected function deferredSizeHandler(event:Event):void
 +		{
 +            host.removeEventListener("sizeChanged", deferredSizeHandler);
 +            host.removeEventListener("widthChanged", deferredSizeHandler);
 +            host.removeEventListener("heightChanged", deferredSizeHandler);
 +			
 +			completeSetup();
- 
- 			var num:Number = contentView.numElements;
- 			if (num > 0)
-             {
-                 performLayout(event);
-             }
 +		}
 +
 +		/**
 +		 * Called when the host is ready to complete its setup (usually after its size has been
 +		 * determined).
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		protected function completeSetup():void
 +		{
 +			// listen for changes to strand's size and rerun the layout
 +			host.addEventListener("sizeChanged", resizeHandler);
 +			host.addEventListener("widthChanged", resizeHandler);
 +			host.addEventListener("heightChanged", resizeHandler);
 +		}
- 
- 		/**
- 		 * Handles the viewCreated event by performing the first layout if
- 		 * there are children already present (ie, from MXML).
- 		 *
- 		 *  @langversion 3.0
- 		 *  @playerversion Flash 10.2
- 		 *  @playerversion AIR 2.6
- 		 *  @productversion FlexJS 0.8
- 		 */
- 		protected function viewCreatedHandler(event:Event):void
- 		{
- 			var num:Number = contentView.numElements;
- 			if (num > 0)
- 			{
- 				performLayout(event);
- 			}
- 		}
- 
- 		/**
- 		 * @private
- 		 */
- 		protected function handleChildrenAdded(event:Event):void
- 		{
- 			COMPILE::SWF {
- 				var n:Number = contentView.numElements;
- 				for(var i:int=0; i < n; i++) {
- 					var child:IEventDispatcher = contentView.getElementAt(i) as IEventDispatcher;
- 					child.addEventListener("widthChanged", childResizeHandler);
- 					child.addEventListener("heightChanged", childResizeHandler);
- 					child.addEventListener("sizeChanged", childResizeHandler);
- 				}
- 			}
- 
- 			performLayout(event);
- 		}
 +		
 +		/**
 +		 * Invoked in response to the strand being resized.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		protected function resizeHandler(event:Event):void
 +		{
- 			performLayout(event);
- 		}
- 		
- 		/**
- 		 * Invoked in response to any child being resized.
- 		 *
- 		 *  @langversion 3.0
- 		 *  @playerversion Flash 10.2
- 		 *  @playerversion AIR 2.6
- 		 *  @productversion FlexJS 0.8
- 		 */
- 		protected function childResizeHandler(event:Event):void
- 		{
- 			performLayout(event);
++			// override in subclasses in case there is something besides running
++			// the layout (which is handled automatically by the layout itself).
 +		}
 +		
 +		/**
 +		 * Provides a place for pre-layout actions.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
- 		protected function layoutViewBeforeContentLayout():void
++		public function beforeLayout():void
 +		{
 +			// This has no use for Group but is here so a subclass can override it.
 +		}
 +
 +		/**
 +		 * Executes the layout associated with this container. Once the layout has been
 +		 * run, it may affect the size of the host or may cause the host to present scroll
 +		 * bars view its viewport.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.8
 +		 */
 +		protected function performLayout(event:Event):void
 +		{
- 			if (layoutRunning) return;
- 
- 			layoutRunning = true;
- 			
- 			// pre-process before layout
- 			layoutViewBeforeContentLayout();
- 
- 			var host:UIBase = _strand as UIBase;
- 
- 			var layout:IBeadLayout = _strand.getBeadByType(IBeadLayout) as IBeadLayout;
- 			if (layout == null) {
- 				var c:Class = ValuesManager.valuesImpl.getValue(host, "iBeadLayout");
- 				if (c) {
- 					layout = new c() as IBeadLayout;
- 					_strand.addBead(layout);
- 				}
- 			}
- 
- 			if (layout) {
- 				layout.layout();
- 			}
- 
- 			// cleanup or adjust after layout
- 			layoutViewAfterContentLayout();
- 
- 			layoutRunning = false;
- 			
- 			host.dispatchEvent(new Event("layoutComplete"));
++			trace("CALLING performLayout !!!!");
 +		}
 +
 +		/**
 +		 * Returns the size of the content area including the padding.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.0
 +		 */
 +		COMPILE::SWF
 +		protected function calculateContentSize():Size
 +		{
 +			var maxWidth:Number = 0;
 +			var maxHeight:Number = 0;
 +			var num:Number = contentView.numElements;
 +
 +			for (var i:int=0; i < num; i++) {
 +				var child:IUIBase = contentView.getElementAt(i) as IUIBase;
 +				if (child == null || !child.visible) continue;
 +				var childXMax:Number = child.x + child.width;
 +				var childYMax:Number = child.y + child.height;
 +				maxWidth = Math.max(maxWidth, childXMax);
 +				maxHeight = Math.max(maxHeight, childYMax);
 +			}
 +
 +			var padding:org.apache.flex.geom.Rectangle = CSSContainerUtils.getPaddingMetrics(this._strand);
 +			var border:org.apache.flex.geom.Rectangle = CSSContainerUtils.getBorderMetrics(this._strand);
 +
 +			// return the content size as the max plus right/bottom padding. the x,y position of
 +			// each child is already offset by the left/top padding by the layout algorithm.
 +			return new Size(maxWidth + padding.right - (border.left+border.right), maxHeight + padding.bottom - (border.top+border.bottom));
 +		}
 +
 +		/**
- 		 * @private
- 		 */
- 		private var adjusting:Boolean = false;
- 
- 		/**
 +		 * Adjusts the size of the host after the layout has been run.
 +		 *
 +		 *  @langversion 3.0
 +		 *  @playerversion Flash 10.2
 +		 *  @playerversion AIR 2.6
 +		 *  @productversion FlexJS 0.0
 +		 */
 +		COMPILE::SWF
- 		protected function layoutViewAfterContentLayout():void
++		public function afterLayout():void
 +		{
- 			if (adjusting) return;
- 
 +			var host:UIBase = _strand as UIBase;
- 
- 			adjusting = true;
- 
 +			var contentSize:Size = calculateContentSize();
 +
 +			if (host.isWidthSizedToContent() && host.isHeightSizedToContent()) {
 +				host.setWidthAndHeight(contentSize.width, contentSize.height, true);
 +			}
 +			else if (!host.isWidthSizedToContent() && host.isHeightSizedToContent())
 +			{
 +				host.setHeight(contentSize.height, true);
 +			}
 +			else if (host.isWidthSizedToContent() && !host.isHeightSizedToContent())
 +			{
 +				host.setWidth(contentSize.width, true);
 +			}
- 
- 			adjusting = false;
 +		}
 +		
 +		COMPILE::JS
- 		protected function layoutViewAfterContentLayout():void
++		public function afterLayout():void
 +		{
 +			// maybe useful in a subclass on the JS side.
 +		}
 +
 +		/**
 +		 * @private
 +		 */
 +		COMPILE::SWF
 +		protected function displayBackgroundAndBorder(host:UIBase) : void
 +		{
 +			var backgroundColor:Object = ValuesManager.valuesImpl.getValue(host, "background-color");
 +			var backgroundImage:Object = ValuesManager.valuesImpl.getValue(host, "background-image");
 +			if (backgroundColor != null || backgroundImage != null)
 +			{
 +				if (host.getBeadByType(IBackgroundBead) == null)
 +					var c:Class = ValuesManager.valuesImpl.getValue(host, "iBackgroundBead");
 +				if (c) {
 +					host.addBead( new c() as IBead );
 +				}
 +			}
- 
++			
++			if (setupForBorder(host, "border")) return;
++			if (setupForBorder(host, "border-top")) return;
++			if (setupForBorder(host, "border-bottom")) return;
++			if (setupForBorder(host, "border-left")) return;
++			if (setupForBorder(host, "border-right")) return;
++		}
++		
++		COMPILE::SWF
++		protected function setupForBorder(host:UIBase, borderType:String):Boolean
++		{
++			var result:Boolean = false;
++			
 +			var borderStyle:String;
- 			var borderStyles:Object = ValuesManager.valuesImpl.getValue(host, "border");
++			var borderStyles:Object = ValuesManager.valuesImpl.getValue(host, borderType);
 +			if (borderStyles is Array)
 +			{
 +				borderStyle = borderStyles[1];
 +			}
 +			if (borderStyle == null)
 +			{
- 				borderStyle = ValuesManager.valuesImpl.getValue(host, "border-style") as String;
++				borderStyle = ValuesManager.valuesImpl.getValue(host, borderType+"-style") as String;
 +			}
 +			if (borderStyle != null && borderStyle != "none")
 +			{
 +				if (host.getBeadByType(IBorderBead) == null) {
- 					c = ValuesManager.valuesImpl.getValue(host, "iBorderBead");
++					var c:Class = ValuesManager.valuesImpl.getValue(host, "iBorderBead");
 +					if (c) {
 +						host.addBead( new c() as IBead );
++						result = true;
 +					}
 +				}
 +			}
++			
++			return result;
 +		}
 +	}
 +}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1691921e/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
index 761e1c7,5bd1159..51d0c4c
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/ButtonBarLayout.as
@@@ -17,36 -17,30 +17,21 @@@
  //
  ////////////////////////////////////////////////////////////////////////////////
  package org.apache.flex.html.beads.layouts
 -{	
 +{
  	import org.apache.flex.core.IBeadLayout;
 -	import org.apache.flex.core.IItemRendererClassFactory;
 -	import org.apache.flex.core.IItemRendererParent;
--	import org.apache.flex.core.ILayoutHost;
- 	import org.apache.flex.core.ILayoutParent;
 -	import org.apache.flex.core.IParentIUIBase;
 -	import org.apache.flex.core.ISelectableItemRenderer;
 -	import org.apache.flex.core.ISelectionModel;
++	import org.apache.flex.core.ILayoutChild;
 +	import org.apache.flex.core.ILayoutView;
- 	import org.apache.flex.core.IParentIUIBase;
- 	import org.apache.flex.core.ISelectableItemRenderer;
- 	import org.apache.flex.core.ISelectionModel;
++	import org.apache.flex.core.IStyleableObject;
  	import org.apache.flex.core.IStrand;
--	import org.apache.flex.core.IUIBase;
--	import org.apache.flex.core.IViewportModel;
- 	import org.apache.flex.core.LayoutBase;
- 	import org.apache.flex.core.SimpleCSSStyles;
--	import org.apache.flex.core.UIBase;
--	import org.apache.flex.core.ValuesManager;
--	import org.apache.flex.events.Event;
--	import org.apache.flex.events.IEventDispatcher;
--	import org.apache.flex.html.List;
--	import org.apache.flex.html.beads.ButtonBarView;
 -	
 +	import org.apache.flex.html.beads.models.ButtonBarModel;
- 	import org.apache.flex.geom.Rectangle;
- 	import org.apache.flex.utils.CSSUtils;
- 	import org.apache.flex.utils.CSSContainerUtils;
++	import org.apache.flex.html.supportClasses.UIItemRendererBase;
 +
  	/**
- 	 *  The ButtonBarLayout class bead sizes and positions the org.apache.flex.html.Button
 -	 *  The ButtonBarLayout class bead sizes and positions the org.apache.flex.html.Button 
 -	 *  elements that make up a org.apache.flex.html.ButtonBar. This bead arranges the Buttons 
++	 *  The ButtonBarLayout class bead sizes and positions the button
 +	 *  elements that make up a org.apache.flex.html.ButtonBar. This bead arranges the Buttons
  	 *  horizontally and makes them all the same width unless the buttonWidths property has been set in which case
  	 *  the values stored in that array are used.
 -	 *  
 +	 *
  	 *  @langversion 3.0
  	 *  @playerversion Flash 10.2
  	 *  @playerversion AIR 2.6
@@@ -91,81 -98,46 +76,71 @@@
  		/**
  		 * @copy org.apache.flex.core.IBeadLayout#layout
  		 */
 -		public function layout():Boolean
 +		override public function layout():Boolean
  		{
 -			var layoutParent:ILayoutHost = _strand.getBeadByType(ILayoutHost) as ILayoutHost;
 -			var contentView:IParentIUIBase = layoutParent.contentView as IParentIUIBase;
 -			var itemRendererParent:IItemRendererParent = contentView as IItemRendererParent;
 -			var viewportModel:IViewportModel = (layoutParent as ButtonBarView).viewportModel;
 -			
 -			var n:int = contentView.numElements;
 -			var realN:int = n;
 -			
 -			for (var j:int=0; j < n; j++)
 -			{
 -				var child:IUIBase = itemRendererParent.getElementAt(j) as IUIBase;
 -				if (child == null || !child.visible) realN--;
 +			var contentView:ILayoutView = layoutView;
 +
 +			var model:ButtonBarModel = (host as IStrand).getBeadByType(ButtonBarModel) as ButtonBarModel;
 +			if (model) {
 +				buttonWidths = model.buttonWidths;
 +				_widthType = model.widthType;
  			}
 -			
 -			var xpos:Number = 0;
 -			var useWidth:Number = contentView.width / realN;
 -			var useHeight:Number = contentView.height;
 -			
 +
 +			var n:int = contentView.numElements;
++			if (n <= 0) return false;
 +
  			for (var i:int=0; i < n; i++)
--			{
- 				var ir:ISelectableItemRenderer = contentView.getElementAt(i) as ISelectableItemRenderer;
 -				var ir:ISelectableItemRenderer = itemRendererParent.getElementAt(i) as ISelectableItemRenderer;
--				if (ir == null || !UIBase(ir).visible) continue;
 -				UIBase(ir).y = 0;
 -				UIBase(ir).x = xpos;
 -				if (!isNaN(useHeight) && useHeight > 0) {
 -					UIBase(ir).height = useHeight;
 -				}
++			{	
++				var ilc:ILayoutChild = contentView.getElementAt(i) as ILayoutChild;
++				if (ilc == null || !ilc.visible) continue;
++				if (!(ilc is IStyleableObject)) continue;
  				
 -				if (buttonWidths) UIBase(ir).width = Number(buttonWidths[i]);
 -				else if (!isNaN(useWidth) && useWidth > 0) {
 -					UIBase(ir).width = useWidth;
 +				COMPILE::SWF {
 +					if (buttonWidths) {
 +						var widthValue:* = buttonWidths[i];
 +
 +						if (_widthType == ButtonBarModel.PIXEL_WIDTHS) {
- 							if (widthValue != null) UIBase(ir).width = Number(widthValue);
- 							if (UIBase(ir).style == null) {
- 								UIBase(ir).style = new SimpleCSSStyles();
- 							}
- 							UIBase(ir).style.flexGrow = 0;
++							if (widthValue != null) ilc.width = Number(widthValue);
++							IStyleableObject(ilc).style.flexGrow = 0;
 +						}
 +						else if (_widthType == ButtonBarModel.PROPORTIONAL_WIDTHS) {
 +							if (widthValue != null) {
- 								if (UIBase(ir).style == null) {
- 									UIBase(ir).style = new SimpleCSSStyles();
- 								}
- 								UIBase(ir).style.flexGrow = Number(widthValue);
++								IStyleableObject(ilc).style.flexGrow = Number(widthValue);
 +							}
 +						}
 +						else if (_widthType == ButtonBarModel.PERCENT_WIDTHS) {
- 							if (widthValue != null) UIBase(ir).percentWidth = Number(widthValue);
- 							if (UIBase(ir).style == null) {
- 								UIBase(ir).style = new SimpleCSSStyles();
- 							}
- 							UIBase(ir).style.flexGrow = 0;
++							if (widthValue != null) ilc.percentWidth = Number(widthValue);
++							IStyleableObject(ilc).style.flexGrow = 0;
 +						}
 +					} else {
- 						if (UIBase(ir).style == null) {
- 							UIBase(ir).style = new SimpleCSSStyles();
- 						}
- 						UIBase(ir).style.flexGrow = 1;
++						IStyleableObject(ilc).style.flexGrow = 1;
 +					}
 +				}
 +
 +				COMPILE::JS {
 +					// otherwise let the flexbox layout handle matters on its own.
 +					if (buttonWidths) {
 +						var widthValue:* = buttonWidths[i];
 +
 +						if (_widthType == ButtonBarModel.PIXEL_WIDTHS) {
- 							if (widthValue != null) UIBase(ir).width = Number(widthValue);
++							if (widthValue != null) ilc.width = Number(widthValue);
 +						}
 +						else if (_widthType == ButtonBarModel.PROPORTIONAL_WIDTHS) {
- 							if (widthValue != null) UIBase(ir).element.style["flex-grow"] = String(widthValue);
++							if (widthValue != null) ilc.element.style["flex-grow"] = String(widthValue);
 +						}
 +						else if (_widthType == ButtonBarModel.PERCENT_WIDTHS) {
- 							if (widthValue != null) UIBase(ir).percentWidth = Number(widthValue);
++							if (widthValue != null) ilc.percentWidth = Number(widthValue);
 +						}
 +					} else {
- 						UIBase(ir).element.style["flex-grow"] = "1";
++						ilc.element.style["flex-grow"] = "1";
 +					}
 +					
- 					UIBase(ir).height = contentView.height;
++					ilc.height = contentView.height;
  				}
 -				xpos += UIBase(ir).width;
  			}
 -			
 -			IEventDispatcher(_strand).dispatchEvent( new Event("layoutComplete") );
 -			
 -            return true;
 +
 +			// now let the horizontal layout take care of things.
 +			return super.layout();
  		}
  	}
  }


[26/43] git commit: [flex-asjs] [refs/heads/dual] - Add FORM_URL_ENCODED constant. Improve comments.

Posted by ah...@apache.org.
Add FORM_URL_ENCODED constant. Improve comments.


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

Branch: refs/heads/dual
Commit: 1bb87596817e4cef598f6b14b725c55cf9612915
Parents: 060f982
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 09:52:03 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 09:52:03 2017 +1000

----------------------------------------------------------------------
 .../flex/org/apache/flex/net/HTTPConstants.as   | 30 ++++++++++++++++----
 .../flex/org/apache/flex/net/HTTPService.as     |  2 +-
 .../main/flex/org/apache/flex/net/URLRequest.as |  2 +-
 3 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bb87596/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPConstants.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPConstants.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPConstants.as
index 7060966..b36274d 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPConstants.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPConstants.as
@@ -21,7 +21,9 @@ package org.apache.flex.net
     public final class HTTPConstants extends Object
     {
         /**
-         *  
+         *
+		 *  HTTP GET request.
+		 *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -30,7 +32,9 @@ package org.apache.flex.net
         public static const GET:String = "GET";
         
         /**
-         *  
+         *
+		 *  HTTP Post request.
+		 *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -39,7 +43,8 @@ package org.apache.flex.net
         public static const POST:String = "POST";
         
         /**
-         *  
+         *  HTTP Put request.
+		 *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -48,14 +53,27 @@ package org.apache.flex.net
         public static const PUT:String = "PUT";
         
         /**
-         *  
+         *
+		 *  HTTP form url encoded.
+		 *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        public static const DELETE:String = "DELETE";
-        
+        public static const FORM_URL_ENCODED:String = "application/x-www-form-urlencoded";
+
+		/**
+		 *
+		 *  HTTP delete request.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public static const DELETE:String = "DELETE";
+
 		/**
 		 *  Dispatched when the connection is opened.
 		 *  

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bb87596/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
index ea3b7b3..5578b63 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/HTTPService.as
@@ -119,7 +119,7 @@ package org.apache.flex.net
             }
 		}
 		
-		private var _contentType:String = "application/x-www-form-urlencoded";
+		private var _contentType:String = HTTPConstants.FORM_URL_ENCODED;
         
         /**
          *  @copy org.apache.flex.net.BinaryUploader#contentType

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bb87596/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
index 3c39f50..80924bf 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLRequest.as
@@ -59,7 +59,7 @@ package org.apache.flex.net
 		 *  @playerversion AIR 2.6
 		 *  @productversion FlexJS 0.7.0
 		 */	
-        public var contentType:String = "application/x-www-form-urlencoded";
+        public var contentType:String = HTTPConstants.FORM_URL_ENCODED;
 		
 		/**
 		 *   Controls the HTTP form submission method.


[24/43] git commit: [flex-asjs] [refs/heads/dual] - match sides

Posted by ah...@apache.org.
match sides


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

Branch: refs/heads/dual
Commit: d8a5c6393646b79f21aadf26b67132b867bf911c
Parents: f4dde33
Author: Justin Mclean <jm...@apache.org>
Authored: Mon Apr 17 09:40:01 2017 +1000
Committer: Justin Mclean <jm...@apache.org>
Committed: Mon Apr 17 09:40:01 2017 +1000

----------------------------------------------------------------------
 .../Network/src/main/flex/org/apache/flex/net/URLStream.as       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d8a5c639/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
index be3a9d6..3946fa3 100644
--- a/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/net/URLStream.as
@@ -124,8 +124,8 @@ package org.apache.flex.net
 				var contentSet:Boolean = false;
 				for each (var requestHeader:org.apache.flex.net.URLRequestHeader in urlRequest.requestHeaders)
 				{
-					if(requestHeader.name.toLowerCase() == HTTPHeader.CONTENT_TYPE.toLocaleLowerCase())
-					{
+					if(requestHeader.name.toLowerCase() == HTTPHeader.CONTENT_TYPE.toLowerCase())
+					{                             	
 						contentSet = true;
 						req.contentType = requestHeader.value;
 					}


[03/43] git commit: [flex-asjs] [refs/heads/dual] - Handles case where Group et al may not have a layout.

Posted by ah...@apache.org.
Handles case where Group et al may not have a layout.


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

Branch: refs/heads/dual
Commit: 0fc2115c4d4ca317f28ee4907dd179675cf590bb
Parents: 87efeed
Author: Peter Ent <pe...@apache.org>
Authored: Thu Apr 13 10:32:19 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Apr 13 10:32:19 2017 -0400

----------------------------------------------------------------------
 .../HTML/src/main/flex/org/apache/flex/core/GroupBase.as      | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0fc2115c/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
index 815101a..07859a1 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/core/GroupBase.as
@@ -109,8 +109,11 @@ package org.apache.flex.core
 			var layout:IBeadLayout = getBeadByType(IBeadLayout) as IBeadLayout;
 			if (!layout)
 			{
-				layout = new (ValuesManager.valuesImpl.getValue(this, "iBeadLayout")) as IBeadLayout;
-				addBead(layout);
+				var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadLayout") as Class;
+				if (c) {
+					layout = new c() as IBeadLayout;
+					addBead(layout);
+				}
 			}
 		}
 		


[07/43] git commit: [flex-asjs] [refs/heads/dual] - Updates to Mobile project. Getting closer.

Posted by ah...@apache.org.
Updates to Mobile project. Getting closer.


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

Branch: refs/heads/dual
Commit: e3cbf4fc916a57ad99cd14527ae67168fd702271
Parents: fd5eaae
Author: Peter Ent <pe...@apache.org>
Authored: Fri Apr 14 16:20:30 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Apr 14 16:20:30 2017 -0400

----------------------------------------------------------------------
 .../html/beads/layouts/HorizontalFlexLayout.as  |  1 +
 .../html/beads/layouts/VerticalFlexLayout.as    |  1 +
 .../Mobile/src/main/flex/MobileClasses.as       |  1 -
 .../apache/flex/mobile/ManagedContentArea.as    | 55 --------------------
 .../flex/mobile/beads/StackedViewManagerView.as | 40 ++++----------
 .../flex/mobile/beads/TabbedViewManagerView.as  | 41 ++++-----------
 .../src/main/resources/basic-manifest.xml       |  1 -
 .../Mobile/src/main/resources/defaults.css      |  7 ---
 8 files changed, 21 insertions(+), 126 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
index cad6827..6fb927d 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/HorizontalFlexLayout.as
@@ -255,6 +255,7 @@ package org.apache.flex.html.beads.layouts
 					var child:UIBase = contentView.getElementAt(i) as UIBase;
 					if (grow >= 0) child.element.style["flex-grow"] = String(grow);
 					if (shrink >= 0) child.element.style["flex-shrink"] = String(shrink);
+					child.dispatchEvent(new Event("layoutNeeded"));
 				}
 
 				return true;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
index f495acc..c543425 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/layouts/VerticalFlexLayout.as
@@ -251,6 +251,7 @@ package org.apache.flex.html.beads.layouts
 					var child:UIBase = contentView.getElementAt(i) as UIBase;
 					if (grow >= 0) child.element.style["flex-grow"] = String(grow);
 					if (shrink >= 0) child.element.style["flex-shrink"] = String(shrink);
+					child.dispatchEvent(new Event("layoutNeeded"));
 				}
 
 				return true;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
index ea74217..7c650fd 100644
--- a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
+++ b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
@@ -33,7 +33,6 @@ internal class MobileClasses
 	import org.apache.flex.mobile.beads.DatePickerView; DatePickerView;
 	import org.apache.flex.mobile.ToggleSwitch; ToggleSwitch;
 	import org.apache.flex.mobile.ViewManagerBase; ViewManagerBase;
-	import org.apache.flex.mobile.ManagedContentArea; ManagedContentArea;
 	import org.apache.flex.mobile.beads.StackedViewManagerView; StackedViewManagerView;
 	import org.apache.flex.mobile.beads.TabbedViewManagerView; TabbedViewManagerView;
 	import org.apache.flex.mobile.beads.ViewManagerViewBase; ViewManagerViewBase;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.as
deleted file mode 100644
index 16081e5..0000000
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ManagedContentArea.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 org.apache.flex.mobile
-{
-	import org.apache.flex.core.UIBase;
-	import org.apache.flex.html.Group;
-	import org.apache.flex.events.Event;
-	
-	COMPILE::JS
-	{
-			import org.apache.flex.core.WrappedHTMLElement;
-	}
-	
-	/**
-	 *  The ManagedContentArea is the space in which views are displayed by the 
-	 *  view manager classes.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10.2
-	 *  @playerversion AIR 2.6
-	 *  @productversion FlexJS 0.0
-	 */
-	public class ManagedContentArea extends Group
-	{
-		/**
-		 * Constructor.
-	     *  
-	     *  @langversion 3.0
-	     *  @playerversion Flash 10.2
-	     *  @playerversion AIR 2.6
-	     *  @productversion FlexJS 0.0
-		 */
-		public function ManagedContentArea()
-		{
-			super();
-			className = "ManagedContentArea";
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
index 2e4e009..a500c12 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/StackedViewManagerView.as
@@ -22,13 +22,13 @@ package org.apache.flex.mobile.beads
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.IViewportModel;
 	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.SimpleCSSStyles;
 	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.IViewManager;
 	import org.apache.flex.mobile.IViewManagerView;
-	import org.apache.flex.mobile.ManagedContentArea;
 	import org.apache.flex.mobile.chrome.NavigationBar;
 	import org.apache.flex.mobile.chrome.ToolBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
@@ -63,13 +63,6 @@ package org.apache.flex.mobile.beads
 		 * Children
 		 */
 		
-		private var _contentArea:ManagedContentArea;
-		
-		public function get contentArea():ManagedContentArea
-		{
-			return _contentArea;
-		}
-		
 		public function get toolBar():ToolBar
 		{
 			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
@@ -94,9 +87,6 @@ package org.apache.flex.mobile.beads
 			_strand = value;
 			super.strand = value;
 			
-			// The content area will hold the views
-			_contentArea = new ManagedContentArea();
-			
 			var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
 			
 			if (model.toolBarItems)
@@ -116,11 +106,6 @@ package org.apache.flex.mobile.beads
 			IEventDispatcher(model).addEventListener("viewPushed", handlePushEvent);
 			IEventDispatcher(model).addEventListener("viewPopped", handlePopEvent);
 			
-			COMPILE::SWF {
-				_contentArea.percentWidth = 100;
-			}
-			UIBase(_strand).addElement(_contentArea);
-			
 			if (toolBar) {
 				UIBase(_strand).addElement(toolBar);
 			}
@@ -164,11 +149,11 @@ package org.apache.flex.mobile.beads
 			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
 			
 			if (_topView != null) {
-				contentArea.removeElement(_topView);
+				UIBase(_strand).removeElement(_topView);
 			}
 			_topView = model.views[index] as IViewManagerView;
 			_topView.viewManager = _strand as IViewManager;
-			contentArea.addElement(_topView);
+			UIBase(_strand).addElementAt(_topView,1);
 			
 			COMPILE::JS {
 				if (_topView) {
@@ -176,22 +161,15 @@ package org.apache.flex.mobile.beads
 				}
 			}
 			COMPILE::SWF {
+				if (UIBase(_topView).style == null) {
+					UIBase(_topView).style = new SimpleCSSStyles();
+				}
+				UIBase(_topView).style.flexGrow = 1;
 				UIBase(_topView).percentWidth = 100;
-				UIBase(_topView).percentHeight = 100;
-				contentArea.layoutNeeded();
 			}
-		}
-		
-		override public function afterLayout():void
-		{
-			super.afterLayout();
 			
-			COMPILE::SWF {
-				if (_topView) {
-					UIBase(_topView).width = contentArea.width;
-					UIBase(_topView).height = contentArea.height;
-				}
-			}
+			// Now that a view has changed, refresh the layout for this component.
+			UIBase(_strand).dispatchEvent(new Event("layoutNeeded"));
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
index 7959da0..4ee3a5a 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/TabbedViewManagerView.as
@@ -22,13 +22,13 @@ package org.apache.flex.mobile.beads
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.IViewportModel;
 	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.SimpleCSSStyles;
 	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.IViewManager;
 	import org.apache.flex.mobile.IViewManagerView;
-	import org.apache.flex.mobile.ManagedContentArea;
 	import org.apache.flex.mobile.chrome.NavigationBar;
 	import org.apache.flex.mobile.chrome.TabBar;
 	import org.apache.flex.mobile.models.ViewManagerModel;
@@ -64,8 +64,6 @@ package org.apache.flex.mobile.beads
 		 * Children
 		 */
 		
-		private var _contentArea:ManagedContentArea;
-		
 		public function get tabBar():TabBar
 		{
 			var model:ViewManagerModel = strand.getBeadByType(IBeadModel) as ViewManagerModel;
@@ -77,11 +75,6 @@ package org.apache.flex.mobile.beads
 			model.tabBar = value;
 		}
 		
-		public function get contentArea():ManagedContentArea
-		{
-			return _contentArea;
-		}
-		
 		/*
 		 * ViewBead
 		 */
@@ -95,9 +88,6 @@ package org.apache.flex.mobile.beads
 			_strand = value;
 			super.strand = value;
 			
-			// The content area will hold the views
-			_contentArea = new ManagedContentArea();
-			
 			var model:ViewManagerModel = value.getBeadByType(IBeadModel) as ViewManagerModel;
 			
 			// TabbedViewManager always has a TabBar
@@ -112,11 +102,6 @@ package org.apache.flex.mobile.beads
 		{			
 			super.handleInitComplete(event);
 			
-			COMPILE::SWF {
-				_contentArea.percentWidth = 100;
-			}
-			UIBase(_strand).addElement(_contentArea);
-			
 			if (tabBar) {
 				UIBase(_strand).addElement(tabBar);
 			}
@@ -131,34 +116,28 @@ package org.apache.flex.mobile.beads
 			var model:ViewManagerModel = _strand.getBeadByType(IBeadModel) as ViewManagerModel;
 			
 			if (_currentView != null) {
-				contentArea.removeElement(_currentView);
+				UIBase(_strand).removeElement(_currentView);
 			}
 			_currentView = model.views[index] as IViewManagerView;
 			_currentView.viewManager = _strand as IViewManager;
-			contentArea.addElement(_currentView);
+			UIBase(_strand).addElementAt(_currentView,1);
 			
 			COMPILE::JS {
 				if (_currentView) {
 					UIBase(_currentView).element.style["flex-grow"] = "1";
 				}
+				UIBase(_strand).dispatchEvent(new Event("layoutNeeded"));
 			}
 			COMPILE::SWF {
+				if (UIBase(_currentView).style == null) {
+					UIBase(_currentView).style = new SimpleCSSStyles();
+				}
+				UIBase(_currentView).style.flexGrow = 1;
 				UIBase(_currentView).percentWidth = 100;
-				UIBase(_currentView).percentHeight = 100;
-				contentArea.layoutNeeded();
 			}
-		}
-		
-		override public function afterLayout():void
-		{
-			super.afterLayout();
 			
-			COMPILE::SWF {
-				if (_currentView) {
-					UIBase(_currentView).width = contentArea.width;
-					UIBase(_currentView).height = contentArea.height;
-				}
-			}
+			// Now that the view has changed, refresh the layout on this component.
+			UIBase(_strand).dispatchEvent(new Event("layoutNeeded"));
 		}
 		
 		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml b/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
index ac85e14..e0f523d 100644
--- a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
@@ -23,7 +23,6 @@
     <component id="StackedViewManager" class="org.apache.flex.mobile.StackedViewManager" />
     <component id="TabbedViewManager" class="org.apache.flex.mobile.TabbedViewManager" />
     <component id="TitleView" class="org.apache.flex.mobile.TitleView" />
-    <component id="ManagedContentArea" class="org.apache.flex.mobile.ManagedContentArea" />
     <component id="NavigationBar" class="org.apache.flex.mobile.chrome.NavigationBar" />
     <component id="ToolBar" class="org.apache.flex.mobile.chrome.ToolBar" />
     <component id="TabBar" class="org.apache.flex.mobile.chrome.TabBar" />

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e3cbf4fc/frameworks/projects/Mobile/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/defaults.css b/frameworks/projects/Mobile/src/main/resources/defaults.css
index f360d5c..569904e 100644
--- a/frameworks/projects/Mobile/src/main/resources/defaults.css
+++ b/frameworks/projects/Mobile/src/main/resources/defaults.css
@@ -42,13 +42,6 @@ TabbedViewManager
 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalFlexLayout");
 }
 
-ManagedContentArea
-{
-	display: flex;
-	flex-grow: 1;
-	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
-}
-
 TabBar {
 	flex-grow: 0;
 	height: 40px;


[35/43] git commit: [flex-asjs] [refs/heads/dual] - Get Express package working again.

Posted by ah...@apache.org.
Get Express package working again.


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

Branch: refs/heads/dual
Commit: 975b47867b4ca4e800f6b234d4a1628fc4edc583
Parents: 6fca715
Author: Peter Ent <pe...@apache.org>
Authored: Mon Apr 17 15:23:42 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Mon Apr 17 15:23:42 2017 -0400

----------------------------------------------------------------------
 frameworks/projects/Express/src/main/resources/defaults.css | 9 +++------
 .../Express/src/main/resources/express-manifest.xml         | 1 +
 2 files changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/975b4786/frameworks/projects/Express/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Express/src/main/resources/defaults.css b/frameworks/projects/Express/src/main/resources/defaults.css
index 7046a0d..cf49448 100644
--- a/frameworks/projects/Express/src/main/resources/defaults.css
+++ b/frameworks/projects/Express/src/main/resources/defaults.css
@@ -40,10 +40,10 @@ Application
 }
 
 Container
-{
+{	
 	IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
-	IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
+	IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
 	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
 	
 	background-color: #FFFFFF;
@@ -59,10 +59,7 @@ TextInput
 
 View
 {
-	IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
+	IBeadView: ClassReference("org.apache.flex.html.beads.GroupView");
 	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.BasicLayout");
-	IContentView: ClassReference("org.apache.flex.html.supportClasses.ContainerContentArea");
-	IViewport: ClassReference("org.apache.flex.html.supportClasses.Viewport");
-	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/975b4786/frameworks/projects/Express/src/main/resources/express-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Express/src/main/resources/express-manifest.xml b/frameworks/projects/Express/src/main/resources/express-manifest.xml
index c0d2b16..9ea226e 100644
--- a/frameworks/projects/Express/src/main/resources/express-manifest.xml
+++ b/frameworks/projects/Express/src/main/resources/express-manifest.xml
@@ -42,6 +42,7 @@
     <component id="ButtonBar" class="org.apache.flex.html.ButtonBar"  lookupOnly="true" />
     <component id="CloseButton" class="org.apache.flex.html.CloseButton"  lookupOnly="true" />
     <component id="DropDownList" class="org.apache.flex.html.DropDownList"  lookupOnly="true" />
+    <component id="Group" class="org.apache.flex.html.Group" lookupOnly="true" />
     <component id="Image" class="org.apache.flex.html.Image"  lookupOnly="true" />
     <component id="Label" class="org.apache.flex.html.Label"  lookupOnly="true" />
     <component id="MultilineLabel" class="org.apache.flex.html.MultilineLabel"  lookupOnly="true" />


[38/43] git commit: [flex-asjs] [refs/heads/dual] - lost this event metadata in the merge

Posted by ah...@apache.org.
lost this event metadata in the merge


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

Branch: refs/heads/dual
Commit: 358a06f1a6720958ea85c487a2dddf396ade66e7
Parents: 9fd9b78
Author: Alex Harui <ah...@apache.org>
Authored: Tue Apr 18 08:47:42 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Apr 18 08:47:42 2017 -0700

----------------------------------------------------------------------
 .../Basic/src/main/flex/org/apache/flex/html/CheckBox.as  | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/358a06f1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
index ef78a05..d8e8568 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/CheckBox.as
@@ -132,6 +132,16 @@ package org.apache.flex.html
 		}
 	}
 
+    /**
+     *  Dispatched when the user checks or un-checks the CheckBox.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+	[Event(name="change", type="org.apache.flex.events.Event")]
+
     COMPILE::JS
     public class CheckBox extends UIBase
     {


[43/43] git commit: [flex-asjs] [refs/heads/dual] - get stock quotes to work again

Posted by ah...@apache.org.
get stock quotes to work again


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

Branch: refs/heads/dual
Commit: 31e3c55be37020b1e0afed2e86490872624156cc
Parents: 4941e12
Author: Alex Harui <ah...@apache.org>
Authored: Fri Apr 21 09:31:26 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Apr 21 09:31:26 2017 -0700

----------------------------------------------------------------------
 .../DataBindingExample/src/main/flex/controllers/MyController.as | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/31e3c55b/examples/flexjs/DataBindingExample/src/main/flex/controllers/MyController.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingExample/src/main/flex/controllers/MyController.as b/examples/flexjs/DataBindingExample/src/main/flex/controllers/MyController.as
index b7d52bd..6487908 100644
--- a/examples/flexjs/DataBindingExample/src/main/flex/controllers/MyController.as
+++ b/examples/flexjs/DataBindingExample/src/main/flex/controllers/MyController.as
@@ -42,8 +42,8 @@ package controllers
 		private var service:HTTPService;
 		private var collection:LazyCollection;
 
-        private var queryBegin:String = "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22";
-        private var queryEnd:String = "%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json";
+        private var queryBegin:String = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22";
+        private var queryEnd:String = "%22)%0A%09%09&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&format=json";
 
 		private function viewChangeHandler(event:Event):void
 		{


[34/43] git commit: [flex-asjs] [refs/heads/dual] - DataGrid was supposed to extend GroupBase, not Group.

Posted by ah...@apache.org.
DataGrid was supposed to extend GroupBase, not Group.


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

Branch: refs/heads/dual
Commit: 6fca71522e14026ba757bb90f05cc3507cb4c06e
Parents: 313e900
Author: Peter Ent <pe...@apache.org>
Authored: Mon Apr 17 14:50:27 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Mon Apr 17 14:50:27 2017 -0400

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/html/DataGrid.as  | 24 +++++---------------
 1 file changed, 6 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/6fca7152/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
index fda1b46..5a17c4a 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/DataGrid.as
@@ -22,8 +22,10 @@ package org.apache.flex.html
 	import org.apache.flex.core.IDataGridModel;
 	import org.apache.flex.core.IDataGridPresentationModel;
 	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.GroupBase;
 	import org.apache.flex.core.ValuesManager;
 	import org.apache.flex.html.beads.models.DataGridPresentationModel;
+	import org.apache.flex.events.Event;
 	
 	[Event(name="change", type="org.apache.flex.events.Event")]
 	
@@ -41,7 +43,7 @@ package org.apache.flex.html
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class DataGrid extends Group
+	public class DataGrid extends GroupBase
 	{
 		/**
 		 *  constructor.
@@ -160,24 +162,10 @@ package org.apache.flex.html
 			presentationModel.rowHeight = value;
 		}
 		
-		/**
-		 * @private
-		 * The DataGrid needs to know whenever its size is being changed so the columns can be
-		 * be aligned properly, so the noEvent value must always be false.
-		 */
-		override public function setWidth(value:Number, noEvent:Boolean=false):void
-		{
-			super.setWidth(value,false);
-		}
-		
-		/**
-		 * @private
-		 * The DataGrid needs to know whenever its size is being changed so the columns can be
-		 * be aligned properly, so the noEvent value must always be false.
-		 */
-		override public function setHeight(value:Number, noEvent:Boolean=false):void
+		override public function addedToParent():void
 		{
-			super.setHeight(value,false);
+			super.addedToParent();
+			dispatchEvent(new Event("initComplete"));
 		}
 	}
 }