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 2013/06/20 20:31:39 UTC
git commit: [flex-asjs] [refs/heads/develop] - Changed UIMetrics to
be top, left,
bottom.right so as to be more universal and to include both border thickness
and padding. Updated Alert, SimpleAlert,
and Panel to use the new metrics. Changed order of beads
Updated Branches:
refs/heads/develop fc36f4a7f -> 2c8fa396b
Changed UIMetrics to be top,left,bottom.right so as to be more universal and to include both border thickness and padding. Updated Alert, SimpleAlert, and Panel to use the new metrics. Changed order of beads for Container so that background lies below the border.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/2c8fa396
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/2c8fa396
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/2c8fa396
Branch: refs/heads/develop
Commit: 2c8fa396b2426255c3e6151f5da153ee1a9935df
Parents: fc36f4a
Author: Peter Ent <pe...@apache.org>
Authored: Thu Jun 20 14:31:25 2013 -0400
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Jun 20 14:31:25 2013 -0400
----------------------------------------------------------------------
frameworks/as/defaults.css | 7 ++
.../as/src/org/apache/flex/core/UIMetrics.as | 8 +--
.../apache/flex/html/staticControls/Panel.as | 3 +
.../flex/html/staticControls/beads/AlertBead.as | 22 +++----
.../html/staticControls/beads/ContainerBead.as | 16 +++--
.../flex/html/staticControls/beads/PanelBead.as | 67 ++++++--------------
.../staticControls/beads/SimpleAlertBead.as | 14 ++--
.../as/src/org/apache/flex/utils/BeadMetrics.as | 39 ++++++++++--
8 files changed, 96 insertions(+), 80 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/as/defaults.css b/frameworks/as/defaults.css
index 8577021..adaa202 100644
--- a/frameworks/as/defaults.css
+++ b/frameworks/as/defaults.css
@@ -138,6 +138,13 @@ Panel
{
IPanelModel: ClassReference("org.apache.flex.html.staticControls.beads.models.PanelModel");
IPanelBead: ClassReference("org.apache.flex.html.staticControls.beads.PanelBead");
+ iBorderBead: ClassReference("org.apache.flex.html.staticControls.beads.SingleLineBorderBead");
+ iBackgroundBead: ClassReference("org.apache.flex.html.staticControls.beads.SolidBackgroundBead");
+
+ background-color: #FFFFFF;
+ border-style: solid;
+ border-color: #000000;
+ border-thickness: 1;
}
SimpleAlert
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/core/UIMetrics.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/core/UIMetrics.as b/frameworks/as/src/org/apache/flex/core/UIMetrics.as
index 345c75c..65cd424 100644
--- a/frameworks/as/src/org/apache/flex/core/UIMetrics.as
+++ b/frameworks/as/src/org/apache/flex/core/UIMetrics.as
@@ -24,12 +24,12 @@ package org.apache.flex.core
{
}
- public var x:Number;
+ public var top:Number;
- public var y:Number;
+ public var left:Number;
- public var width:Number;
+ public var bottom:Number;
- public var height:Number;
+ public var right:Number;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/html/staticControls/Panel.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/html/staticControls/Panel.as b/frameworks/as/src/org/apache/flex/html/staticControls/Panel.as
index d1c8ac6..2c43c8b 100644
--- a/frameworks/as/src/org/apache/flex/html/staticControls/Panel.as
+++ b/frameworks/as/src/org/apache/flex/html/staticControls/Panel.as
@@ -22,6 +22,8 @@ package org.apache.flex.html.staticControls
import org.apache.flex.core.IPanelModel;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
+ import org.apache.flex.html.staticControls.beads.IBackgroundBead;
+ import org.apache.flex.html.staticControls.beads.IBorderBead;
import org.apache.flex.html.staticControls.beads.IPanelBead;
import org.apache.flex.html.staticControls.beads.PanelBead;
@@ -110,6 +112,7 @@ package org.apache.flex.html.staticControls
if( getBeadByType(IPanelBead) == null) {
addBead(new (ValuesManager.valuesImpl.getValue(this,"iPanelBead")) as IBead);
}
+
titleBar.title = this.title;
titleBar.showCloseButton = this.showCloseButton;
}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/html/staticControls/beads/AlertBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/html/staticControls/beads/AlertBead.as b/frameworks/as/src/org/apache/flex/html/staticControls/beads/AlertBead.as
index 49d5cf1..31bbc21 100644
--- a/frameworks/as/src/org/apache/flex/html/staticControls/beads/AlertBead.as
+++ b/frameworks/as/src/org/apache/flex/html/staticControls/beads/AlertBead.as
@@ -115,21 +115,21 @@ package org.apache.flex.html.staticControls.beads
var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);
- _titleBar.x = metrics.x;
- _titleBar.y = metrics.y;
- _titleBar.width = maxWidth - 2*metrics.x;
+ _titleBar.x = metrics.left;
+ _titleBar.y = metrics.top;
+ _titleBar.width = maxWidth;
// content placement here
- _label.x = metrics.x;
- _label.y = metrics.y + _titleBar.height + 2;
- _label.width = maxWidth - 2*metrics.x;
+ _label.x = metrics.left;
+ _label.y = _titleBar.y + _titleBar.height + 2;
+ _label.width = maxWidth;
- _controlBar.x = metrics.x;
- _controlBar.y = metrics.x + _label.y + _label.height + 2;
- _controlBar.width = maxWidth - 2*metrics.x;
+ _controlBar.x = metrics.left;
+ _controlBar.y = _label.y + _label.height + 2;
+ _controlBar.width = maxWidth;
- UIBase(_strand).width = maxWidth;
- UIBase(_strand).height = _controlBar.y + _controlBar.height + metrics.y;
+ UIBase(_strand).width = maxWidth + metrics.left + metrics.right;
+ UIBase(_strand).height = _controlBar.y + _controlBar.height + metrics.bottom + 2;
}
private function handleOK(event:Event):void
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/html/staticControls/beads/ContainerBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/html/staticControls/beads/ContainerBead.as b/frameworks/as/src/org/apache/flex/html/staticControls/beads/ContainerBead.as
index faac381..a67db7b 100644
--- a/frameworks/as/src/org/apache/flex/html/staticControls/beads/ContainerBead.as
+++ b/frameworks/as/src/org/apache/flex/html/staticControls/beads/ContainerBead.as
@@ -37,6 +37,15 @@ package org.apache.flex.html.staticControls.beads
public function set strand(value:IStrand):void
{
_strand = value;
+
+ var backgroundColor:Object = ValuesManager.valuesImpl.getValue(value, "background-color");
+ var backgroundImage:Object = ValuesManager.valuesImpl.getValue(value, "background-image");
+ if (backgroundColor != null || backgroundImage != null)
+ {
+ if (value.getBeadByType(IBackgroundBead) == null)
+ value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBackgroundBead")) as IBead);
+ }
+
var borderStyle:String;
var borderStyles:Object = ValuesManager.valuesImpl.getValue(value, "border");
if (borderStyles is Array)
@@ -52,13 +61,6 @@ package org.apache.flex.html.staticControls.beads
if (value.getBeadByType(IBorderBead) == null)
value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBorderBead")) as IBead);
}
- var backgroundColor:Object = ValuesManager.valuesImpl.getValue(value, "background-color");
- var backgroundImage:Object = ValuesManager.valuesImpl.getValue(value, "background-image");
- if (backgroundColor != null || backgroundImage != null)
- {
- if (value.getBeadByType(IBackgroundBead) == null)
- value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBackgroundBead")) as IBead);
- }
var paddingLeft:Object;
var paddingTop:Object;
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelBead.as b/frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelBead.as
index d465401..80a59c7 100644
--- a/frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelBead.as
+++ b/frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelBead.as
@@ -19,12 +19,13 @@
package org.apache.flex.html.staticControls.beads
{
import flash.display.DisplayObjectContainer;
- import flash.display.Shape;
import flash.display.Sprite;
import org.apache.flex.core.IBead;
import org.apache.flex.core.IStrand;
import org.apache.flex.core.IUIBase;
+ import org.apache.flex.core.UIBase;
+ import org.apache.flex.core.UIMetrics;
import org.apache.flex.core.ValuesManager;
import org.apache.flex.events.Event;
import org.apache.flex.events.IEventDispatcher;
@@ -32,6 +33,7 @@ package org.apache.flex.html.staticControls.beads
import org.apache.flex.html.staticControls.ControlBar;
import org.apache.flex.html.staticControls.Panel;
import org.apache.flex.html.staticControls.TitleBar;
+ import org.apache.flex.utils.BeadMetrics;
public class PanelBead implements IBead, IContainerBead
{
@@ -74,29 +76,6 @@ package org.apache.flex.html.staticControls.beads
Container(_strand).addChild(controlBar);
}
-
- var borderStyle:String;
- var borderStyles:Object = ValuesManager.valuesImpl.getValue(value, "border");
- if (borderStyles is Array)
- {
- borderStyle = borderStyles[1];
- }
- if (borderStyle == null)
- {
- borderStyle = ValuesManager.valuesImpl.getValue(value, "border-style") as String;
- }
- if (borderStyle != null && borderStyle != "none")
- {
- if (value.getBeadByType(IBorderBead) == null)
- value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBorderBead")) as IBead);
- }
- var backgroundColor:Object = ValuesManager.valuesImpl.getValue(value, "background-color");
- var backgroundImage:Object = ValuesManager.valuesImpl.getValue(value, "background-image");
- if (backgroundColor != null || backgroundImage != null)
- {
- if (value.getBeadByType(IBackgroundBead) == null)
- value.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBackgroundBead")) as IBead);
- }
var paddingLeft:Object;
var paddingTop:Object;
@@ -144,34 +123,30 @@ package org.apache.flex.html.staticControls.beads
private var contentArea:DisplayObjectContainer;
private var controlBarArea:ControlBar;
- private var controlBarBackground:Shape;
private function changeHandler(event:Event):void
{
- layoutTitleArea();
+ var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);
- contentArea.x = 0;
- contentArea.y = titleBar.height;
- contentArea.width = Container(_strand).width;
+ titleBar.x = metrics.left;
+ titleBar.y = metrics.top;
+ titleBar.width = UIBase(_strand).width - (metrics.left + metrics.right);
- if( controlBar ) layoutControlBarArea();
+ contentArea.x = metrics.left;
+ contentArea.y = titleBar.y + titleBar.height;
+ contentArea.width = UIBase(_strand).width - (metrics.left + metrics.right);
- IEventDispatcher(_strand).dispatchEvent(new Event('widthChanged'));
- IEventDispatcher(_strand).dispatchEvent(new Event('heightChanged'));
- }
-
- protected function layoutTitleArea() : void
- {
- titleBar.x = 0;
- titleBar.y = 0;
- titleBar.width = Container(_strand).width;
- }
-
- protected function layoutControlBarArea() : void
- {
- controlBar.x = 0;
- controlBar.y = contentArea.y + contentArea.height;
- controlBar.width = Container(_strand).width;
+ if( controlBar ) {
+ controlBar.x = metrics.left;
+ controlBar.y = contentArea.y + contentArea.height;
+ controlBar.width = UIBase(_strand).width - (metrics.left + metrics.right);
+ }
+
+ UIBase(_strand).height = metrics.top + metrics.bottom + titleBar.height + contentArea.height +
+ (controlBar ? controlBar.height : 0);
+
+ //IEventDispatcher(_strand).dispatchEvent(new Event('widthChanged'));
+ //IEventDispatcher(_strand).dispatchEvent(new Event('heightChanged'));
}
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/html/staticControls/beads/SimpleAlertBead.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/html/staticControls/beads/SimpleAlertBead.as b/frameworks/as/src/org/apache/flex/html/staticControls/beads/SimpleAlertBead.as
index d6c97a8..3d65868 100644
--- a/frameworks/as/src/org/apache/flex/html/staticControls/beads/SimpleAlertBead.as
+++ b/frameworks/as/src/org/apache/flex/html/staticControls/beads/SimpleAlertBead.as
@@ -83,15 +83,15 @@ package org.apache.flex.html.staticControls.beads
var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);
- messageLabel.x = metrics.x;
- messageLabel.y = metrics.y;
- messageLabel.width = maxWidth-2*metrics.x;
+ messageLabel.x = metrics.left;
+ messageLabel.y = metrics.top;
+ messageLabel.width = maxWidth;
- okButton.x = (UIBase(_strand).width - okButton.width)/2;
- okButton.y = messageLabel.height + 20;
+ okButton.x = (maxWidth - okButton.width)/2;
+ okButton.y = messageLabel.y + messageLabel.height + 20;
- UIBase(_strand).width = maxWidth;
- UIBase(_strand).height = messageLabel.height + okButton.height + 20 + 2*metrics.x;
+ UIBase(_strand).width = maxWidth + metrics.left + metrics.right;
+ UIBase(_strand).height = okButton.y + okButton.height + metrics.bottom;
}
private function handleOK(event:Event):void
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c8fa396/frameworks/as/src/org/apache/flex/utils/BeadMetrics.as
----------------------------------------------------------------------
diff --git a/frameworks/as/src/org/apache/flex/utils/BeadMetrics.as b/frameworks/as/src/org/apache/flex/utils/BeadMetrics.as
index be4c405..3ec3827 100644
--- a/frameworks/as/src/org/apache/flex/utils/BeadMetrics.as
+++ b/frameworks/as/src/org/apache/flex/utils/BeadMetrics.as
@@ -19,7 +19,6 @@
package org.apache.flex.utils
{
import org.apache.flex.core.IStrand;
- import org.apache.flex.core.UIBase;
import org.apache.flex.core.UIMetrics;
import org.apache.flex.core.ValuesManager;
@@ -38,11 +37,41 @@ public class BeadMetrics
if( isNaN(borderOffset) ) borderOffset = 0;
}
+ var paddingLeft:Object;
+ var paddingTop:Object;
+ var padding:Object = ValuesManager.valuesImpl.getValue(strand, "padding");
+ if (padding is Array)
+ {
+ if (padding.length == 1)
+ paddingLeft = paddingTop = padding[0];
+ else if (padding.length <= 3)
+ {
+ paddingLeft = padding[1];
+ paddingTop = padding[0];
+ }
+ else if (padding.length == 4)
+ {
+ paddingLeft = padding[3];
+ paddingTop = padding[0];
+ }
+ }
+ else if (padding == null)
+ {
+ paddingLeft = ValuesManager.valuesImpl.getValue(strand, "padding-left");
+ paddingTop = ValuesManager.valuesImpl.getValue(strand, "padding-top");
+ }
+ else
+ {
+ paddingLeft = paddingTop = padding;
+ }
+ var pl:Number = Number(paddingLeft);
+ var pt:Number = Number(paddingTop);
+
var result:UIMetrics = new UIMetrics();
- result.x = borderOffset;
- result.y = borderOffset;
- result.width = UIBase(strand).width - 2*borderOffset;
- result.height = UIBase(strand).height - 2*borderOffset;
+ result.top = borderOffset + pt;
+ result.left = borderOffset + pl;
+ result.bottom = borderOffset + pt;
+ result.right = borderOffset + pl;
return result;
}