You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2019/12/26 03:49:19 UTC

[royale-asjs] branch develop updated: auto-generate skinparts

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 743ee23  auto-generate skinparts
743ee23 is described below

commit 743ee235938b4a241e732917c8c92a1c5e1668bc
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Dec 25 19:49:03 2019 -0800

    auto-generate skinparts
---
 .../src/main/config/compile-js-config.xml          |  1 +
 .../src/main/config/compile-swf-config.xml         |  1 +
 .../src/main/royale/spark/components/FormItem.as   |  7 +-----
 .../supportClasses/SkinnableComponent.as           | 29 +++++++++++++++++++++-
 4 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/frameworks/js/projects/SparkRoyaleJS/src/main/config/compile-js-config.xml b/frameworks/js/projects/SparkRoyaleJS/src/main/config/compile-js-config.xml
index 3328d7e..f3fc9c0 100644
--- a/frameworks/js/projects/SparkRoyaleJS/src/main/config/compile-js-config.xml
+++ b/frameworks/js/projects/SparkRoyaleJS/src/main/config/compile-js-config.xml
@@ -52,6 +52,7 @@
           <name>ChangeEvent</name>
           <name>NonCommittingChangeEvent</name>
           <name>Transient</name>
+          <name>SkinPart</name>
         </keep-as3-metadata>
 	  
         <locale/>
diff --git a/frameworks/projects/SparkRoyale/src/main/config/compile-swf-config.xml b/frameworks/projects/SparkRoyale/src/main/config/compile-swf-config.xml
index d14487d..f710ab6 100644
--- a/frameworks/projects/SparkRoyale/src/main/config/compile-swf-config.xml
+++ b/frameworks/projects/SparkRoyale/src/main/config/compile-swf-config.xml
@@ -68,6 +68,7 @@
           <name>ChangeEvent</name>
           <name>NonCommittingChangeEvent</name>
           <name>Transient</name>
+          <name>SkinPart</name>
         </keep-as3-metadata>
 	  
         <locale/>
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/FormItem.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/FormItem.as
index d8681e3..d16df19 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/FormItem.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/FormItem.as
@@ -422,12 +422,7 @@ package spark.components
 					return "normal";       
 			}
 		}
-		
-        override protected function get skinParts():Object
-        {
-            return { labelDisplay: true, sequenceLabelDisplay: true};
-        }
-        
+		        
 		/**
 		 *  @private
 		 */
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as
index 5875441..dcbcfa2 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableComponent.as
@@ -31,6 +31,11 @@ import mx.core.IFactory;
 import mx.core.mx_internal;
 
 import org.apache.royale.events.Event;
+import org.apache.royale.reflection.TypeDefinition;
+import org.apache.royale.reflection.VariableDefinition;
+import org.apache.royale.reflection.MetaDataDefinition;
+import org.apache.royale.reflection.MetaDataArgDefinition;
+import org.apache.royale.reflection.describeType;
 use namespace mx_internal;
 
 import mx.core.UIComponent;
@@ -306,7 +311,29 @@ public class SkinnableComponent extends UIComponent
      */
     protected function get skinParts():Object
     {
-        return null;
+        var parts:Object = {};
+        
+        var td:TypeDefinition = describeType(this);
+        var vars:Array = td.variables;
+        for each (var vd:VariableDefinition in vars)
+        {
+            var metadata:Array = vd.metadata;
+            for each (var md:MetaDataDefinition in metadata)
+            {
+                if (md.name == "SkinPart")
+                {
+                    var required:Boolean = false;
+                    var args:Array = md.args;
+                    for each (var arg:MetaDataArgDefinition in args)
+                    {
+                        if (arg.name == "required")
+                            required = (arg.value == "true");
+                    }
+                    parts[vd.name] = required;
+                }
+            }
+        }
+        return parts;
     }
 
     /**