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 <[email protected]>
Authored: Fri Apr 14 08:53:04 2017 -0400
Committer: Peter Ent <[email protected]>
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

Reply via email to