Repository: flex-asjs
Updated Branches:
  refs/heads/develop b7cec7f21 -> 941c7630e


Updated Panels to work with changes to layout 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/941c7630
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/941c7630
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/941c7630

Branch: refs/heads/develop
Commit: 941c7630e9c4a448bd9956b328a3929af67d6b49
Parents: b7cec7f
Author: Peter Ent <p...@apache.org>
Authored: Tue May 26 10:39:04 2015 -0400
Committer: Peter Ent <p...@apache.org>
Committed: Tue May 26 10:39:04 2015 -0400

----------------------------------------------------------------------
 frameworks/projects/HTML/as/defaults.css        |   4 +
 .../src/org/apache/flex/html/beads/PanelView.as |   4 +-
 .../flex/html/beads/PanelWithControlBarView.as  | 112 ++++++++-----------
 3 files changed, 51 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/941c7630/frameworks/projects/HTML/as/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/defaults.css 
b/frameworks/projects/HTML/as/defaults.css
index 6abecaa..6bca6cd 100644
--- a/frameworks/projects/HTML/as/defaults.css
+++ b/frameworks/projects/HTML/as/defaults.css
@@ -94,6 +94,8 @@ Container
 
 ControlBar
 {
+       IBeadLayout: 
ClassReference("org.apache.flex.html.beads.layouts.HorizontalLayout");
+       
     background-color: #CECECE;
     border-style: solid;
     border-color: #000000;
@@ -166,6 +168,7 @@ Panel
     border-style: solid;
     border-color: #000000;
     border-width: 1px;
+       padding: 2px;
 }
 
 PanelWithControlBar
@@ -177,6 +180,7 @@ PanelWithControlBar
     border-style: solid;
     border-color: #000000;
     border-width: 1px;
+       padding: 2px;
 }
 
 SimpleList

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/941c7630/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelView.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelView.as
index 8be59e0..e9c4299 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelView.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelView.as
@@ -122,9 +122,7 @@ package org.apache.flex.html.beads
         override protected function determinePadding():Object
         {
             var paddings:Object = super.determinePadding();
-            titleBar.x = paddings.left;
-            titleBar.y = paddings.top;
-            titleBar.width = UIBase(_strand).width;
+            titleBar.width = UIBase(_strand).clientWidth;
             paddings.paddingTop += titleBar.height;
             return paddings;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/941c7630/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelWithControlBarView.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelWithControlBarView.as
 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelWithControlBarView.as
index 0ea7b35..1337768 100644
--- 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelWithControlBarView.as
+++ 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/PanelWithControlBarView.as
@@ -99,30 +99,39 @@ package org.apache.flex.html.beads
                 */
                override public function set strand(value:IStrand):void
                {
-                       super.strand = value;
+                       var host:UIBase = UIBase(value);
                        
-            // TODO: (aharui) get class to instantiate from CSS
-            _titleBar = new TitleBar();
+                       // TODO: (aharui) get class to instantiate from CSS
+                       if (!_titleBar)
+                               _titleBar = new TitleBar();
+                       _titleBar.percentWidth = 100;
                        // replace the TitleBar's model with the Panel's model 
(it implements ITitleBarModel) so that
                        // any changes to values in the Panel's model that 
correspond values in the TitleBar will 
                        // be picked up automatically by the TitleBar.
-                       titleBar.model = UIBase(_strand).model as 
ITitleBarModel;
-                       Container(_strand).addElement(titleBar, false);
+                       titleBar.model = host.model;
+                       host.addElement(titleBar, false);
+                       titleBar.addEventListener("heightChanged", 
changeHandler);
+                       if (isNaN(host.explicitWidth) && 
isNaN(host.percentWidth))
+                               titleBar.addEventListener("widthChanged", 
changeHandler);
                        
-                       var controlBarItems:Array = 
IPanelModel(UIBase(_strand).model).controlBar;
+                       var controlBarItems:Array = (host.model as 
IPanelModel).controlBar;
                        if( controlBarItems && controlBarItems.length > 0 ) {
                                _controlBar = new ControlBar();
+                               _controlBar.percentWidth = 100;
+                               _controlBar.height = 30;
                                
                                for each(var comp:IUIBase in controlBarItems) {
                                        _controlBar.addElement(comp, false);
                                }
+                               _controlBar.dispatchEvent(new 
Event("layoutNeeded"));
                                
-                               Container(_strand).addElement(controlBar, 
false);
+                               host.addElement(controlBar, false);
+                               controlBar.addEventListener("heightChanged", 
changeHandler);
+                               if (isNaN(host.explicitWidth) && 
isNaN(host.percentWidth))
+                                       
controlBar.addEventListener("widthChanged", changeHandler);
                        }
                        
-                       layoutChromeElements();
-                       
-                       
IEventDispatcher(_strand).addEventListener("childrenAdded", changeHandler);     
       
+                       super.strand = value;
                }
                
                /**
@@ -142,35 +151,16 @@ package org.apache.flex.html.beads
                /**
                 * @private
                 */
-               private function layoutChromeElements():void
+               override protected function determinePadding():Object
                {
-                       var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);
-                                               
-                       titleBar.x = 0;
-                       titleBar.y = 0;
-                       titleBar.width = UIBase(_strand).width;
-                       
-                       var ypos:Number = titleBar.y + titleBar.height;
-                       
-                       actualParent.x = 0;
-                       actualParent.y = ypos;
-                       
-                       ypos = actualParent.y + actualParent.height;
-                       trace("ypos is "+ypos+" because actualParent.height is 
"+actualParent.height);
-                       
-                       if (controlBar) {
-                               controlBar.x = 0;
-                               controlBar.width = UIBase(_strand).width;
-                               
-                               var expHeight:Number = 
UIBase(_strand).explicitHeight;
-                               if (isNaN(expHeight)) {
-                                       controlBar.y = ypos;
-                               } else {
-                                       controlBar.y = expHeight - 
controlBar.height;
-                               }
-                       }
-                       
-                       UIBase(_strand).dispatchEvent(new 
Event("widthChanged"));
+                       var paddings:Object = super.determinePadding();
+                       titleBar.width = UIBase(_strand).clientWidth;
+                       paddings.paddingTop += titleBar.height;
+                       
+                       controlBar.width = UIBase(_strand).clientWidth;
+                       paddings.paddingBottom += controlBar.height;
+
+                       return paddings;
                }
                
                /**
@@ -178,42 +168,32 @@ package org.apache.flex.html.beads
                 */
                override protected function changeHandler(event:Event):void
                {
-                       layoutChromeElements();
+                       super.changeHandler(event);
+                       
+                       controlBar.y = UIBase(_strand).clientHeight - 
controlBar.height;
                }
-               private function changeHandlerOLD(event:Event):void
+               
+               /**
+                * @private
+                */
+               private function layoutChromeElements():void
                {
-                       var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);
-                       
-                       var w:Number = UIBase(_strand).explicitWidth;
-                       if (isNaN(w)) w = 
Math.max(titleBar.width,actualParent.width+metrics.left+metrics.right,controlBar?controlBar.width:0);
-                       
-                       var h:Number = UIBase(_strand).explicitHeight;
-                       if (isNaN(h)) h = titleBar.height + actualParent.height 
+ (controlBar ? controlBar.height : 0) +
-                               metrics.top + metrics.bottom;
-                       
+                       var paddings:Object = determinePadding();
                        titleBar.x = 0;
                        titleBar.y = 0;
-                       titleBar.width = w;
-                       
-                       var remainingHeight:Number = h - titleBar.height;
+                       titleBar.width = UIBase(_strand).clientWidth;
                        
-                       if( controlBar ) {
+                       if (controlBar) {
                                controlBar.x = 0;
-                               controlBar.y = h - controlBar.height;
-                               //controlBar.y = actualParent.y + 
actualParent.height + metrics.bottom;
-                               controlBar.width = w;
-                               
-                               remainingHeight -= controlBar.height;
+                               controlBar.y = UIBase(_strand).clientHeight - 
controlBar.height;
+                               controlBar.width = UIBase(_strand).clientWidth;
                        }
                        
-                       actualParent.x = metrics.left;
-                       actualParent.y = titleBar.y + titleBar.height + 
metrics.top;
-                       actualParent.width = w;
-                       actualParent.height = remainingHeight - metrics.top - 
metrics.bottom;
-                       
-                       UIBase(_strand).width = w;
-                       UIBase(_strand).height = h;
+                       actualParent.x = paddings.paddingLeft;
+                       actualParent.y = titleBar.height + paddings.paddingTop;
+                       actualParent.width = UIBase(_strand).clientWidth - 
paddings.paddingLeft - paddings.paddingRight;
+                       actualParent.height = UIBase(_strand).clientHeight - 
titleBar.height - paddings.paddingTop - paddings.paddingBottom;
+                       if (controlBar) actualParent.height -= 
controlBar.height;
                }
-        
        }
 }

Reply via email to