You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2017/06/01 19:32:13 UTC

git commit: [flex-asjs] [refs/heads/release0.8.0] - Intermediate changes for Accordion.

Repository: flex-asjs
Updated Branches:
  refs/heads/release0.8.0 7a030dbc1 -> d6cb59b17


Intermediate changes for Accordion.


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

Branch: refs/heads/release0.8.0
Commit: d6cb59b1769902d5e5bb61ce9d09680b79b21a68
Parents: 7a030db
Author: Peter Ent <pe...@apache.org>
Authored: Thu Jun 1 15:32:11 2017 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Jun 1 15:32:11 2017 -0400

----------------------------------------------------------------------
 .../flex/html/beads/AccordionCollapseBead.as    |  5 +-
 .../html/beads/AccordionItemRendererView.as     |  6 +-
 .../org/apache/flex/html/beads/AccordionView.as | 62 ++++++++++++++------
 .../layouts/OneFlexibleChildHorizontalLayout.as |  4 ++
 ...eFlexibleChildHorizontalLayoutForOverflow.as |  4 ++
 .../layouts/OneFlexibleChildVerticalLayout.as   |  4 ++
 ...OneFlexibleChildVerticalLayoutForOverflow.as |  4 ++
 .../Basic/src/main/resources/defaults.css       |  2 +-
 8 files changed, 67 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionCollapseBead.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionCollapseBead.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionCollapseBead.as
index 2dde93f..163c276 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionCollapseBead.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionCollapseBead.as
@@ -22,6 +22,7 @@ package org.apache.flex.html.beads
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.UIBase;
 	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
 	import org.apache.flex.html.Accordion;
 	import org.apache.flex.html.beads.layouts.IOneFlexibleChildLayout;
 	import org.apache.flex.html.supportClasses.ICollapsible;
@@ -74,8 +75,8 @@ package org.apache.flex.html.beads
 				lastElement.collapse();
 			}
 			lastSelectedIndex = host.selectedIndex;
-			layout.flexibleChild = newChild.id;
-			layout.layout();
+			layout.flexibleChild = String(host.selectedIndex);			
+			IEventDispatcher(_strand).dispatchEvent(new Event("layoutNeeded"));
 		}
 		
 		protected function get layout():IOneFlexibleChildLayout

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionItemRendererView.as
----------------------------------------------------------------------
diff --git 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
index 85e2b79..9c59377 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
@@ -19,6 +19,7 @@
 package org.apache.flex.html.beads
 {		
 	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
 	import org.apache.flex.html.supportClasses.ICollapsible;
     
 	/**
@@ -53,12 +54,13 @@ package org.apache.flex.html.beads
 			var collapsibleStrand:ICollapsible = _strand as ICollapsible;
 			if (!collapsibleStrand.collapsed)
 			{
-				super.performLayout(event);
+				IEventDispatcher(_strand).dispatchEvent(new Event("layoutNeeded"));
+//				super.performLayout(event);
 			} else // skip layout for viewport children
 			{
 				COMPILE::SWF {
 				// no longer needed layoutViewBeforeContentLayout();
-				afterLayout();
+				//afterLayout();
 				}
 			}
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionView.as
index 947da98..141c97d 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionView.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/AccordionView.as
@@ -21,26 +21,62 @@ package org.apache.flex.html.beads
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStyleableObject;
 	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.core.IDocument;
+	import org.apache.flex.core.ILayoutHost;
+	import org.apache.flex.core.UIBase;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.html.beads.layouts.IOneFlexibleChildLayout;
 	import org.apache.flex.html.supportClasses.ICollapsible;
 	import org.apache.flex.utils.StrandUtils;
 	
+	/**
+	 * The AccordionView sets up the components for the Accordion component.
+	 *  
+     *  @toplevel
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.8
+	 */
 	public class AccordionView extends ListView
 	{
-		private var _layout:IOneFlexibleChildLayout;
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.8
+		 */
 		public function AccordionView()
 		{
 			super();
 		}
 		
+		private var _layout:IOneFlexibleChildLayout;
+		private function get elements():Array
+		{
+			var host:UIBase = _strand as UIBase;
+			var e:Array = [];
+			for (var i:int = 0; i < host.numElements; i++) {
+				e.push(host.getElementAt(i));
+			}
+			return e;
+		}
+		
+		/**
+		 * @private
+		 */
 		override protected function selectionChangeHandler(event:Event):void
 		{
 			super.selectionChangeHandler(event);
-			var renderer:IStyleableObject = dataGroup.getItemRendererForIndex(listModel.selectedIndex) as IStyleableObject;
-			layout.flexibleChild = renderer.id;
+			var model:ISelectionModel = StrandUtils.loadBead(ISelectionModel, "iBeadModel", host) as ISelectionModel;
+			layout.flexibleChild = String(model.selectedIndex);
 		}
 		
+		/**
+		 * @private
+		 */
 		public function get layout():IOneFlexibleChildLayout
 		{
 			if (!_layout)
@@ -55,28 +91,16 @@ package org.apache.flex.html.beads
 				if (_layout)
 				{
 					_strand.addBead(_layout);
+					IDocument(_layout).setDocument(elements);
 				}
 			}
 			return _layout;
 		}
 		
-		override protected function performLayout(event:Event):void
-		{
-			if (layout)
-			{
-				if (!layout.flexibleChild)
-				{
-					var model:ISelectionModel = StrandUtils.loadBead(ISelectionModel, "iBeadModel", host) as ISelectionModel;
-					if (model.selectedIndex > -1)
-					{
-						layout.flexibleChild = (dataGroup.getItemRendererForIndex(model.selectedIndex) as IStyleableObject).id;
-					}
-				}
-				super.performLayout(event);
-			}
-		}
-		
 		COMPILE::SWF
+		/**
+		 * @private
+		 */
 		override protected function itemsCreatedHandler(event:Event):void
 		{
 			var n:int = dataGroup.numElements;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as
index 24a1782..2f81699 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayout.as
@@ -146,6 +146,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::JS
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 
 			actualChild = document[flexibleChild];
@@ -173,6 +175,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::SWF
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 			actualChild = document.hasOwnProperty(flexibleChild) ? document[flexibleChild] : null;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayoutForOverflow.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayoutForOverflow.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayoutForOverflow.as
index f75c08f..2129045 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayoutForOverflow.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildHorizontalLayoutForOverflow.as
@@ -119,6 +119,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::JS
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 
 			actualChild = document[flexibleChild];
@@ -146,6 +148,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::SWF
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 			actualChild = document.hasOwnProperty(flexibleChild) ? document[flexibleChild] : null;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
index 7f4b462..53617fb 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayout.as
@@ -147,6 +147,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::JS
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 
 			actualChild = document[flexibleChild];
@@ -174,6 +176,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::SWF
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 			actualChild = document.hasOwnProperty(flexibleChild) ? document[flexibleChild] : null;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayoutForOverflow.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayoutForOverflow.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayoutForOverflow.as
index da59ec8..4aabc7d 100644
--- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayoutForOverflow.as
+++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/layouts/OneFlexibleChildVerticalLayoutForOverflow.as
@@ -121,6 +121,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::JS
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 
 			actualChild = document[flexibleChild];
@@ -148,6 +150,8 @@ package org.apache.flex.html.beads.layouts
 		COMPILE::SWF
 		override public function layout():Boolean
 		{
+			if (flexibleChild == null) return false;
+			
 			var contentView:ILayoutView = layoutView;
 			actualChild = document.hasOwnProperty(flexibleChild) ? document[flexibleChild] : null;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d6cb59b1/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 e38763c..7e839d1 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -365,7 +365,7 @@ 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");
+	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayoutForOverflow");
 	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
 	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
 	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.AccordionItemRenderer");