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 2018/11/29 00:25:07 UTC

[royale-asjs] branch develop updated (81b86c5 -> 1f3a2dd)

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

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


    from 81b86c5  Spark Checkbox and RadioButton
     new 0a2bad9  add ImageExample to build
     new 1f3a2dd  get SkinnableContainer to contain a GroupBase so Spark Layout can run on it

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 examples/mxroyale/tourdeflexmodules/build.xml      |  2 +-
 .../src/spark/controls/ImageExample.mxml           | 11 +++--
 .../SparkRoyale/src/main/resources/defaults.css    |  5 +-
 .../src/main/royale/SparkRoyaleClasses.as          |  1 +
 .../royale/spark/components/SkinnableContainer.as  | 53 ++++------------------
 .../components/beads/SkinnableContainerView.as}    | 45 +++++++++---------
 .../layouts/supportClasses/SparkLayoutBead.as      |  6 ++-
 7 files changed, 49 insertions(+), 74 deletions(-)
 copy frameworks/projects/{MXRoyale/src/main/royale/mx/containers/beads/models/PanelModel.as => SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as} (60%)


[royale-asjs] 02/02: get SkinnableContainer to contain a GroupBase so Spark Layout can run on it

Posted by ah...@apache.org.
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 1f3a2dd31265ceda908811c09fc98eda0afe2cd1
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Nov 28 16:24:52 2018 -0800

    get SkinnableContainer to contain a GroupBase so Spark Layout can run on it
---
 .../SparkRoyale/src/main/resources/defaults.css    |  5 +-
 .../src/main/royale/SparkRoyaleClasses.as          |  1 +
 .../royale/spark/components/SkinnableContainer.as  | 53 +++------------
 .../components/beads/SkinnableContainerView.as     | 75 ++++++++++++++++++++++
 .../layouts/supportClasses/SparkLayoutBead.as      |  6 +-
 5 files changed, 92 insertions(+), 48 deletions(-)

diff --git a/frameworks/projects/SparkRoyale/src/main/resources/defaults.css b/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
index 38550ed..2e2c802 100644
--- a/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
+++ b/frameworks/projects/SparkRoyale/src/main/resources/defaults.css
@@ -104,10 +104,11 @@ Panel .TitleBar
 
 SkinnableContainer
 {
-	IBeadView: ClassReference("org.apache.royale.html.beads.ContainerView");
-	IBeadLayout: ClassReference("org.apache.royale.html.beads.layouts.BasicLayout");
+	IBeadView: ClassReference("spark.components.beads.SkinnableContainerView");
+	IBeadLayout: ClassReference("spark.layouts.supportClasses.SparkLayoutBead");
 	IViewport: ClassReference("org.apache.royale.html.supportClasses.ScrollingViewport");
 	IViewportModel: ClassReference("org.apache.royale.html.beads.models.ViewportModel");
+	IContentView: ClassReference("spark.components.Group");
 }
 
 TextArea
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as b/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as
index c6a21fa..4dc8cee 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/SparkRoyaleClasses.as
@@ -75,6 +75,7 @@ internal class SparkRoyaleClasses
 	import spark.components.SkinnablePopUpContainer; SkinnablePopUpContainer;
     
     import spark.components.beads.PanelView; PanelView;
+    import spark.components.beads.SkinnableContainerView; SkinnableContainerView;
 	
 }
 
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 421d8f7..5f8ecb4 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableContainer.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/SkinnableContainer.as
@@ -401,6 +401,7 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
     public function SkinnableContainer()
     {
         super();
+        typeNames = "SkinnableContainer";
     }
     
     /**
@@ -1017,9 +1018,8 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
         
         super.addedToParent();		
         
-        // disabled for now to see if we can use spark LayoutBase instead
         // Load the layout bead if it hasn't already been loaded.
-        //loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
+        loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
         
         dispatchEvent(new Event("initComplete"));
         if ((isHeightSizedToContent() || !isNaN(explicitHeight)) &&
@@ -1295,42 +1295,7 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      //  element/child handlers
      //
      //--------------------------------------------------------------------------
-     
-     
-     /**
-      * @private
-      */
-     COMPILE::JS
-     override public function addElement(c:IChild, dispatchEvent:Boolean = true):void
-     {
-         super.addElement(c, dispatchEvent);
-         if (dispatchEvent)
-             this.dispatchEvent(new ValueEvent("childrenAdded", c));
-     }
-     
-     /**
-      * @private
-      */
-     COMPILE::JS
-     override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void
-     {
-         super.addElementAt(c, index, dispatchEvent);
-         if (dispatchEvent)
-             this.dispatchEvent(new ValueEvent("childrenAdded", c));
-     }
-     
-     /**
-      * @private
-      */
-     COMPILE::JS
-     override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void
-     {
-         super.removeElement(c, dispatchEvent);
-         //TODO This should possibly be ultimately refactored to be more PAYG
-         if (dispatchEvent)
-             this.dispatchEvent(new ValueEvent("childrenRemoved", c));
-     }
-     
+         
      /*
      * The following functions are for the SWF-side only and re-direct element functions
      * to the content area, enabling scrolling and clipping which are provided automatically
@@ -1340,10 +1305,14 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      /**
       * @private
       */
-     COMPILE::SWF
      override public function addElement(c:IChild, dispatchEvent:Boolean = true):void
      {
          var contentView:IParent = getLayoutHost().contentView as IParent;
+         if (c == contentView)
+         {
+             super.addElement(c); // ContainerView uses addElement to add inner contentView
+             return;
+         }
          contentView.addElement(c, dispatchEvent);
          if (dispatchEvent)
              this.dispatchEvent(new ValueEvent("childrenAdded", c));
@@ -1352,7 +1321,6 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      /**
       * @private
       */
-     COMPILE::SWF
      override public function addElementAt(c:IChild, index:int, dispatchEvent:Boolean = true):void
      {
          var contentView:IParent = getLayoutHost().contentView as IParent;
@@ -1364,7 +1332,6 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      /**
       * @private
       */
-     COMPILE::SWF
      override public function getElementIndex(c:IChild):int
      {
          var layoutHost:ILayoutHost = view as ILayoutHost;
@@ -1375,7 +1342,6 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      /**
       * @private
       */
-     COMPILE::SWF
      override public function removeElement(c:IChild, dispatchEvent:Boolean = true):void
      {
          var layoutHost:ILayoutHost = view as ILayoutHost;
@@ -1389,10 +1355,10 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      /**
       * @private
       */
-     COMPILE::SWF
      override public function get numElements():int
      {
          var layoutHost:ILayoutHost = view as ILayoutHost;
+         if (!layoutHost) return 0; // view is null when called in addingChild from MXMLDataInterpreter before children are added
          var contentView:IParent = layoutHost.contentView as IParent;
          return contentView.numElements;
      }
@@ -1400,7 +1366,6 @@ public class SkinnableContainer extends SkinnableComponent implements IContainer
      /**
       * @private
       */
-     COMPILE::SWF
      override public function getElementAt(index:int):IChild
      {
          var layoutHost:ILayoutHost = view as ILayoutHost;
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
new file mode 100644
index 0000000..f02ae43
--- /dev/null
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/SkinnableContainerView.as
@@ -0,0 +1,75 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.components.beads
+{
+
+import spark.components.SkinnableContainer;
+import spark.components.supportClasses.GroupBase;
+
+import org.apache.royale.core.IBead;
+import org.apache.royale.core.ILayoutChild;
+import org.apache.royale.core.IStrand;
+import org.apache.royale.core.UIBase;
+import org.apache.royale.html.beads.ContainerView;
+
+/**
+ *  @private
+ *  The SkinnableContainerView for emulation.
+ */
+public class SkinnableContainerView extends ContainerView
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function SkinnableContainerView()
+	{
+		super();
+	}
+
+    /**
+     */
+    override public function set strand(value:IStrand):void
+    {
+        super.strand = value;
+        var host:SkinnableContainer = _strand as SkinnableContainer;
+        var g:GroupBase = (contentView as GroupBase);
+        g.layout = host.layout;
+        
+        if (!host.isWidthSizedToContent())
+            g.percentWidth = 100;
+        if (!host.isHeightSizedToContent())
+            g.percentHeight = 100;
+
+    }
+    
+}
+
+}
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/SparkLayoutBead.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/SparkLayoutBead.as
index af956ec..b74d2ae 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/SparkLayoutBead.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/SparkLayoutBead.as
@@ -28,8 +28,9 @@ import mx.core.mx_internal;
 import spark.components.supportClasses.GroupBase;
 import spark.core.NavigationUnit;
 
-import org.apache.royale.core.IStrand;
 import org.apache.royale.core.IBeadLayout;
+import org.apache.royale.core.ILayoutHost;
+import org.apache.royale.core.IStrand;
 import org.apache.royale.core.LayoutBase;
 import org.apache.royale.core.UIBase;
 import org.apache.royale.events.Event;
@@ -101,7 +102,8 @@ public class SparkLayoutBead extends org.apache.royale.core.LayoutBase
     override public function set strand(value:IStrand):void
     {
         _strand = value;
-        _target = value as GroupBase;
+        var host:UIBase = value as UIBase;
+        _target = (host.view as ILayoutHost).contentView as GroupBase;
         super.strand = value;
         
     }


[royale-asjs] 01/02: add ImageExample to build

Posted by ah...@apache.org.
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 0a2bad97c4cfc7b88f23b42295de73aa7ce49c30
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Nov 28 16:24:17 2018 -0800

    add ImageExample to build
---
 examples/mxroyale/tourdeflexmodules/build.xml                 |  2 +-
 .../tourdeflexmodules/src/spark/controls/ImageExample.mxml    | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/examples/mxroyale/tourdeflexmodules/build.xml b/examples/mxroyale/tourdeflexmodules/build.xml
index de66710..e1cf9de 100644
--- a/examples/mxroyale/tourdeflexmodules/build.xml
+++ b/examples/mxroyale/tourdeflexmodules/build.xml
@@ -324,11 +324,11 @@
 		<compile-mxml folder="/spark/controls/" example="MenuExample"/>
          -->
 		<compile-mxml folder="/spark/controls/" example="RichEditableTextExample"/>
+        <compile-mxml folder="/spark/controls/" example="ImageExample"/>
         <!--
 		<compile-mxml folder="/spark/controls/" example="DateChooserExample"/>
 		<compile-mxml folder="/spark/controls/" example="DateFieldExample"/>
 		<compile-mxml folder="/spark/controls/" example="FormExample"/>
-		<compile-mxml folder="/spark/controls/" example="ImageExample"/>
 		<compile-mxml folder="/spark/controls/" example="LinkBarExample"/>
 		<compile-mxml folder="/spark/controls/" example="LinkButtonExample"/>
 		<compile-mxml folder="/spark/controls/" example="OLAPDataGridExample"/>
diff --git a/examples/mxroyale/tourdeflexmodules/src/spark/controls/ImageExample.mxml b/examples/mxroyale/tourdeflexmodules/src/spark/controls/ImageExample.mxml
index cee3985..675da6f 100644
--- a/examples/mxroyale/tourdeflexmodules/src/spark/controls/ImageExample.mxml
+++ b/examples/mxroyale/tourdeflexmodules/src/spark/controls/ImageExample.mxml
@@ -26,8 +26,10 @@
 		<![CDATA[
 			private function smoothImage(ev:Event):void{
             	//set image smoothing so image looks better when transformed.
+                /* not supported in Royale (yet)
 				var bmp:Bitmap = ev.target.content as Bitmap;
 				bmp.smoothing = true;
+                */
 			}
 		]]>
 	</fx:Script>
@@ -37,21 +39,22 @@
 		<s:layout>
 			<s:HorizontalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10"/>
 		</s:layout>
-		
+		<!--
 		<s:BorderContainer width="50%" height="100%">
 			<s:layout>
 				<s:VerticalLayout paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5"/>
 			</s:layout>
 			<s:Label text="Sample of image embeded at compile time." />
-			<mx:Image id="embededImage" width="50%" height="50%" source="@Embed('assets/ApacheFlexLogo.png')" creationComplete="smoothImage(event)"/>
+			<s:Image id="embededImage" width="50%" height="50%" source="@Embed('assets/ApacheFlexLogo.png')" creationComplete="smoothImage(event)"/>
 		</s:BorderContainer>
-		
+		-->
+        
 		<s:BorderContainer width="50%" height="100%">
 			<s:layout>
 				<s:VerticalLayout paddingBottom="5" paddingLeft="5" paddingRight="5" paddingTop="5"/>
 			</s:layout>
 			<s:Label text="Sample of image loaded at run-time." />
-			<mx:Image id="loadedImage" width="50%" height="50%" source="assets/ApacheFlexLogo.png" creationComplete="smoothImage(event)"/>
+			<s:Image id="loadedImage" width="50%" height="50%" source="assets/ApacheFlexLogo.png" creationComplete="smoothImage(event)"/>
 		</s:BorderContainer>
 	</s:Panel>