You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/10/06 23:29:33 UTC
[14/17] git commit: [flex-asjs] [refs/heads/develop] - parse styles
as strings
parse styles as strings
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/b8ef431c
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/b8ef431c
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/b8ef431c
Branch: refs/heads/develop
Commit: b8ef431cf7884dbf37a7a8ba6b21a20d1e466720
Parents: 43b8981
Author: Alex Harui <ah...@apache.org>
Authored: Mon Oct 6 13:15:25 2014 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Oct 6 13:15:25 2014 -0700
----------------------------------------------------------------------
.../src/org/apache/flex/core/IValuesImpl.as | 11 +++++++
.../org/apache/flex/core/SimpleCSSValuesImpl.as | 34 ++++++++++++++++++++
.../org/apache/flex/core/SimpleValuesImpl.as | 17 +++++++++-
.../FlexJSUI/src/org/apache/flex/core/UIBase.as | 6 ++--
.../src/org/apache/flex/core/UIButtonBase.as | 4 +--
5 files changed, 67 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b8ef431c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IValuesImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IValuesImpl.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IValuesImpl.as
index e643a6e..693e43e 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IValuesImpl.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IValuesImpl.as
@@ -108,5 +108,16 @@ package org.apache.flex.core
*/
function convertColor(value:Object):uint;
+ /**
+ * Converts an HTML-like style format into an object.
+ *
+ * @param value A string, such as "color:red;fontSize:10px".
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ function parseStyles(value:String):Object;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b8ef431c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as
index 103e732..85681da 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as
@@ -471,6 +471,40 @@ package org.apache.flex.core
}
/**
+ * @copy org.apache.flex.core.IValuesImpl#parseStyles()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function parseStyles(styles:String):Object
+ {
+ var obj:Object = {};
+ var parts:Array = styles.split(";");
+ for each (var part:String in parts)
+ {
+ var pieces:Array = part.split(":");
+ var value:String = pieces[1];
+ if (value == "null")
+ obj[pieces[0]] = null;
+ else if (value == "true")
+ obj[pieces[0]] = true;
+ else if (value == "false")
+ obj[pieces[0]] = false;
+ else
+ {
+ var n:Number = Number(value);
+ if (isNaN(n))
+ obj[pieces[0]] = value;
+ else
+ obj[pieces[0]] = n;
+ }
+ }
+ return obj;
+ }
+
+ /**
* A map of inheriting styles
*
* @langversion 3.0
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b8ef431c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleValuesImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleValuesImpl.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleValuesImpl.as
index 0861d68..780a0e7 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleValuesImpl.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleValuesImpl.as
@@ -148,5 +148,20 @@ package org.apache.flex.core
return uint(stringValue.substr(1));
return uint(stringValue);
}
- }
+
+ /**
+ * @copy org.apache.flex.core.IValuesImpl#parseStyles()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function parseStyles(value:String):Object
+ {
+ value = value.replace(/;/g, ",");
+ return JSON.parse("{" + value + "}");
+ }
+
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b8ef431c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as
index de1816e..98a7c86 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIBase.as
@@ -49,7 +49,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class UIBase extends Sprite implements IStrand, IEventDispatcher, IParentIUIBase, IStyleableObject, IChild
+ public class UIBase extends Sprite implements IStrandWithModel, IEventDispatcher, IParentIUIBase, IStyleableObject, IChild
{
/**
* Constructor.
@@ -460,7 +460,9 @@ package org.apache.flex.core
if (_styles != value)
{
if (value is String)
- _styles = JSON.parse("{" + value + "}");
+ {
+ _styles = ValuesManager.valuesImpl.parseStyles(value as String);
+ }
else
_styles = value;
dispatchEvent(new org.apache.flex.events.Event("stylesChanged"));
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b8ef431c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIButtonBase.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIButtonBase.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIButtonBase.as
index 255b91f..713c37f 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIButtonBase.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/UIButtonBase.as
@@ -57,7 +57,7 @@ package org.apache.flex.core
* @playerversion AIR 2.6
* @productversion FlexJS 0.0
*/
- public class UIButtonBase extends SimpleButton implements IStrand, IEventDispatcher, IUIBase, IStyleableObject
+ public class UIButtonBase extends SimpleButton implements IStrandWithModel, IEventDispatcher, IUIBase, IStyleableObject
{
/**
* Constructor.
@@ -550,7 +550,7 @@ package org.apache.flex.core
public function set style(value:Object):void
{
if (value is String)
- _styles = JSON.parse("{" + value + "}");
+ _styles = ValuesManager.valuesImpl.parseStyles(value as String);
else
_styles = value;
dispatchEvent(new org.apache.flex.events.Event("stylesChanged"));