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/23 06:52:40 UTC

[royale-asjs] 02/09: more attempts to use Form Skins

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

commit a612f3c57beb4a3564d31c1666c6e337978c592a
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Dec 16 01:10:43 2019 -0800

    more attempts to use Form Skins
---
 .../SparkRoyale/src/main/resources/defaults.css    |  2 ++
 .../src/main/royale/spark/components/Form.as       |  2 ++
 .../src/main/royale/spark/components/FormItem.as   |  2 ++
 .../royale/spark/components/SkinnableContainer.as  |  4 ++--
 .../components/beads/SkinnableContainerView.as     |  6 ++++--
 .../components/beads/SparkSkinScrollingViewport.as |  8 ++++++-
 .../supportClasses/SkinnableContainerBase.as       |  4 ++--
 .../main/royale/spark/layouts/ConstraintLayout.as  | 25 +++++++++++-----------
 .../src/main/royale/spark/layouts/FormLayout.as    |  2 +-
 9 files changed, 35 insertions(+), 20 deletions(-)

diff --git a/frameworks/projects/SparkRoyale/src/main/resources/defaults.css b/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
index 48705da..263f982 100644
--- a/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
@@ -120,11 +120,13 @@ DropDownList
 Form
 {
 	skinClass: ClassReference("spark.skins.spark.FormSkin");
+	IViewport: ClassReference("spark.components.beads.SparkSkinScrollingViewport");
 }
 
 FormItem
 {
 	skinClass: ClassReference("spark.skins.spark.FormItemSkin");
+	IViewport: ClassReference("spark.components.beads.SparkSkinScrollingViewport");
 }
 
 List
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/Form.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/Form.as
index 9ddf272..0bd6a30 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/Form.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/Form.as
@@ -125,6 +125,8 @@ package spark.components
 		public function Form()
 		{
 			super();
+            typeNames += " Form";
+            
 			// addEventListener(FlexEvent.VALID, validHandler, true);
 			// addEventListener(FlexEvent.INVALID, invalidHandler, true);
 			
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 d5aa302..f29c132 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/FormItem.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/FormItem.as
@@ -129,6 +129,8 @@ package spark.components
 		public function FormItem()
 		{
 			super();
+            typeNames += " FormItem";
+            
 			// Set these here instead of in the CSS type selector for Form
 			// We want to hide the fact that the Form itself doesn't show
 			// the error skin or error tip, but that its children do. 
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableContainer.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableContainer.as
index a7c8cad..f612a3a 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableContainer.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableContainer.as
@@ -27,13 +27,13 @@ import mx.core.IVisualElementContainer;
 import mx.events.FlexEvent;
 import mx.utils.BitFlagUtil;
 
-import spark.components.supportClasses.SkinnableContainerBase;
 import spark.events.ElementExistenceEvent;
 */
 import mx.core.IUIComponent;
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
 
+import spark.components.supportClasses.SkinnableContainerBase;
 import spark.components.supportClasses.SkinnableComponent;
 import spark.components.supportClasses.GroupBase;
 import spark.components.beads.SkinnableContainerView;
@@ -366,7 +366,7 @@ include "../styles/metadata/SelectionFormatTextStyles.as"
  *  @playerversion AIR 1.5
  *  @productversion Royale 0.9.4
  */
-public class SkinnableContainer extends SkinnableComponent implements IContainer, IContainerBaseStrandChildrenHost
+public class SkinnableContainer extends SkinnableContainerBase implements IContainer, IContainerBaseStrandChildrenHost
 {// SkinnableContainerBase 
  //    implements IDeferredContentOwner, IVisualElementContainer
    // include "../core/Version.as";
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
index ca63c80..7e4ece8 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
@@ -59,9 +59,11 @@ public class SkinnableContainerView extends SparkContainerView
     {
         var chost:IContainer = host as IContainer;
         var skinhost:SkinnableComponent = host as SkinnableComponent;
-        if (chost != null && chost != viewport.contentView) {
+        if (chost != null && chost != viewport.contentView && skinhost.skin) {
             chost.addElement(skinhost.skin);
-        }            
+        }
+        else
+            super.addViewport();
     }
 
 }
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkSkinScrollingViewport.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkSkinScrollingViewport.as
index d2fa6cf..0f4843e 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkSkinScrollingViewport.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SparkSkinScrollingViewport.as
@@ -33,6 +33,7 @@ import org.apache.royale.core.IUIBase;
 import org.apache.royale.core.IViewport;
 import org.apache.royale.core.UIBase;
 import org.apache.royale.core.ValuesManager;
+import org.apache.royale.events.Event;
 import org.apache.royale.geom.Size;
 
 COMPILE::SWF
@@ -90,9 +91,14 @@ public class SparkSkinScrollingViewport implements IViewport
         
         var c:Class = ValuesManager.valuesImpl.getValue(value, "skinClass") as Class;
         host.setSkin(new c());
+        host.skin.addEventListener("initComplete", initCompleteHandler);
+        contentArea = host.skin; // temporary assigment so that SkinnableContainer.addElement can add the skin
         
+    }
+    
+    private function initCompleteHandler(event:Event):void
+    {
         contentArea = host.skin["contentGroup"];
-        
         COMPILE::JS
         {
             setScrollStyle();
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableContainerBase.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableContainerBase.as
index 5f3aa8f..dfef503 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableContainerBase.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/supportClasses/SkinnableContainerBase.as
@@ -34,7 +34,7 @@ import mx.managers.IFocusManagerContainer;
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[SkinState("normal")]
+//[SkinState("normal")]
 
 /**
  *  Disabled State
@@ -44,7 +44,7 @@ import mx.managers.IFocusManagerContainer;
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[SkinState("disabled")]
+//[SkinState("disabled")]
 
 //--------------------------------------
 //  Excluded APIs
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/ConstraintLayout.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/ConstraintLayout.as
index 069c55f..07c6fbd 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/ConstraintLayout.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/ConstraintLayout.as
@@ -255,7 +255,8 @@ public class ConstraintLayout extends LayoutBase
     //  constraintColumns
     //----------------------------------
     
-    private var _constraintColumns:Vector.<ConstraintColumn> = new Vector.<ConstraintColumn>(0, true);
+    // MXML assignment of vector not working right now
+    private var _constraintColumns:Array = []; //Vector.<ConstraintColumn> = new Vector.<ConstraintColumn>(0, true);
     // An associative array of column id --> column index
     private var columnsObject:Object = {};
     
@@ -269,7 +270,7 @@ public class ConstraintLayout extends LayoutBase
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.5
      */
-    public function get constraintColumns():Vector.<ConstraintColumn>
+    public function get constraintColumns():Array //Vector.<ConstraintColumn>
     {
         // make defensive copy
         return _constraintColumns.slice();
@@ -278,19 +279,19 @@ public class ConstraintLayout extends LayoutBase
     /**
      *  @private
      */
-    public function set constraintColumns(value:Vector.<ConstraintColumn>):void
+    public function set constraintColumns(value:Array /*Vector.<ConstraintColumn>*/):void
     {   
         // clear constraintColumns
         if (value == null)
         {
-            _constraintColumns = new Vector.<ConstraintColumn>(0, true);
+            _constraintColumns = []; // new Vector.<ConstraintColumn>(0, true);
             columnsObject = {};
             return;
         }
         
         var n:int = value.length;
         var col:ConstraintColumn;
-        var temp:Vector.<ConstraintColumn> = value.slice();
+        var temp:Array /*Vector.<ConstraintColumn>*/ = value.slice();
         var obj:Object = {};
         
         for (var i:int = 0; i < n; i++)
@@ -314,7 +315,7 @@ public class ConstraintLayout extends LayoutBase
     //  constraintRows
     //----------------------------------
     
-    private var _constraintRows:Vector.<ConstraintRow> = new Vector.<ConstraintRow>(0, true);
+    private var _constraintRows:Array = [] // Vector.<ConstraintRow> = new Vector.<ConstraintRow>(0, true);
     // An associative array of row id --> row index
     private var rowsObject:Object = {};
     
@@ -328,7 +329,7 @@ public class ConstraintLayout extends LayoutBase
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.5
      */
-    public function get constraintRows():Vector.<ConstraintRow> 
+    public function get constraintRows():Array //Vector.<ConstraintRow> 
     {
         return _constraintRows.slice();
     }
@@ -336,19 +337,19 @@ public class ConstraintLayout extends LayoutBase
     /**
      *  @private
      */
-    public function set constraintRows(value:Vector.<ConstraintRow>):void
+    public function set constraintRows(value:Array /*Vector.<ConstraintRow>*/):void
     {
         // clear constraintRows
         if (value == null)
         {
-            _constraintRows = new Vector.<ConstraintRow>(0, true);
+            _constraintRows = []; //new Vector.<ConstraintRow>(0, true);
             rowsObject = {};
             return;
         }
         
         var n:int = value.length;
         var row:ConstraintRow;
-        var temp:Vector.<ConstraintRow> = value.slice();
+        var temp:Array /*Vector.<ConstraintRow>*/ = value.slice();
         var obj:Object = {};
         rowBaselines = new Vector.<Array>();
         
@@ -616,7 +617,7 @@ public class ConstraintLayout extends LayoutBase
         if (value == null)
             return;
         
-        var constraintColumns:Vector.<ConstraintColumn> = this._constraintColumns;
+        var constraintColumns:Array /*Vector.<ConstraintColumn>*/ = this._constraintColumns;
         var numCols:int = constraintColumns.length;
         var totalWidth:Number = 0;
         
@@ -637,7 +638,7 @@ public class ConstraintLayout extends LayoutBase
         if (value == null)
             return;
         
-        var constraintRows:Vector.<ConstraintRow> = this._constraintRows;
+        var constraintRows:Array /*Vector.<ConstraintRow>*/ = this._constraintRows;
         var numRows:int = constraintRows.length;
         var totalHeight:Number = 0;
         
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/FormLayout.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/FormLayout.as
index 5d6a474..d94d0c6 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/FormLayout.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/FormLayout.as
@@ -375,7 +375,7 @@ package spark.layouts
 			
 			// TODO (klin): What happens when the form items have different types of columns?
 			const fiLayout:FormItemLayout = getElementLayout(formItems[0]) as FormItemLayout;
-			const constraintColumns:Vector.<ConstraintColumn> = fiLayout.constraintColumns;
+			const constraintColumns:Array /*Vector.<ConstraintColumn>*/ = fiLayout.constraintColumns;
 			const numCols:int = constraintColumns.length;
 			var col:ConstraintColumn;
 			var childInfoArray:Array /* of ColumnFlexChildInfo */ = [];