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 <p...@apache.org>
Authored: Thu Jun 1 15:32:11 2017 -0400
Committer: Peter Ent <p...@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");

Reply via email to