You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2022/01/02 10:52:18 UTC

[royale-asjs] branch develop updated (ac1610b -> 628be8b)

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

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


    from ac1610b  Added needsView and needsController optimization
     new c05b811  Already handled in GroupBase
     new 628be8b  added needsLayout optimization

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:
 .../royale/org/apache/royale/core/GroupBase.as     | 12 +++++++-
 .../royale/org/apache/royale/html/ControlBar.as    | 32 +++++++---------------
 .../main/royale/org/apache/royale/html/TitleBar.as | 13 ---------
 .../apache/royale/html/beads/DataContainerView.as  | 10 -------
 .../org/apache/royale/html/beads/SliderView.as     |  8 ++----
 .../org/apache/royale/html/beads/TreeGridView.as   | 15 +++-------
 .../org/apache/royale/html/NodeElementBase.as      |  5 ++++
 .../org/apache/royale/svg/elements/SVGBase.as      |  4 +++
 8 files changed, 36 insertions(+), 63 deletions(-)

[royale-asjs] 02/02: added needsLayout optimization

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 628be8bad8da997190b8a57b0040b9ed8026d963
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Jan 2 12:52:05 2022 +0200

    added needsLayout optimization
---
 .../royale/org/apache/royale/core/GroupBase.as     | 12 ++++++++-
 .../royale/org/apache/royale/html/ControlBar.as    | 29 ++++++++++------------
 .../main/royale/org/apache/royale/html/TitleBar.as | 13 ----------
 .../apache/royale/html/beads/DataContainerView.as  | 10 --------
 .../org/apache/royale/html/beads/SliderView.as     |  8 ++----
 .../org/apache/royale/html/beads/TreeGridView.as   | 15 +++--------
 .../org/apache/royale/html/NodeElementBase.as      |  5 ++++
 .../org/apache/royale/svg/elements/SVGBase.as      |  4 +++
 8 files changed, 39 insertions(+), 57 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as
index 5c91d86..a00f2b9 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/GroupBase.as
@@ -109,8 +109,18 @@ package org.apache.royale.core
 			super.addedToParent();
 			
 			// Load the layout bead if it hasn't already been loaded.
-			loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
+            if(needsLayout())
+                loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
 		}
+
+        /**
+         * Subclasses can override this method to declare whether they need a layout.
+         * Components which do not need a layout can avoid searching for layout beads
+         */
+        protected function needsLayout():Boolean
+        {
+            return true;
+        }
 		
 		/*
 		 * IContainer
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as
index c877f0c..2f74897 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as
@@ -19,15 +19,12 @@
 package org.apache.royale.html
 {
 
-	import org.apache.royale.core.IBeadLayout;
 	import org.apache.royale.core.IChrome;
-	import org.apache.royale.core.ValuesManager;
-	import org.apache.royale.utils.loadBeadFromValuesManager;
-    COMPILE::JS
-    {
-        import org.apache.royale.core.WrappedHTMLElement;
+	COMPILE::JS
+	{
+		import org.apache.royale.core.WrappedHTMLElement;
 		import org.apache.royale.html.util.addElementToWrapper;
-    }
+	}
 
 	/**
 	 *  The ControlBar class is used within a Panel as a place to position
@@ -43,7 +40,7 @@ package org.apache.royale.html
 	 *  org.apache.royale.html.beads.IBorderBead: if present, displays a border around the component.
 	 *  org.apache.royale.html.beads.IBackgroundBead: if present, displays a solid background below the ControlBar.
 	 *
-     *  @toplevel
+	 *  @toplevel
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
@@ -66,17 +63,17 @@ package org.apache.royale.html
 			typeNames = "ControlBar";
 		}
 
-        /**
-         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
-         */
-        COMPILE::JS
-        override protected function createElement():WrappedHTMLElement
-        {
+		/**
+		 * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		override protected function createElement():WrappedHTMLElement
+		{
 			addElementToWrapper(this,'div');
 			typeNames = "ControlBar";
 
-            return element;
-        }
+			return element;
+		}
 
 	}
 }
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/TitleBar.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/TitleBar.as
index 0b8c457..2f34ff1 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/TitleBar.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/TitleBar.as
@@ -18,12 +18,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html
 {
-	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IBeadLayout;
 	import org.apache.royale.core.IChrome;
 	import org.apache.royale.core.ITitleBarModel;
-	import org.apache.royale.core.ValuesManager;
-	import org.apache.royale.utils.loadBeadFromValuesManager;
     COMPILE::JS
     {
         import org.apache.royale.core.WrappedHTMLElement;
@@ -128,15 +124,6 @@ package org.apache.royale.html
 			ITitleBarModel(model).showCloseButton = value;
 		}
 		
-		/**
-		 * @private
-		 */
-		override public function addedToParent():void
-		{
-			super.addedToParent();
-			loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
-		}
-        
         /**
          * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
          */
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
index 0f3e4ea..b015741 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataContainerView.as
@@ -18,10 +18,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads
 {	
-	import org.apache.royale.core.IBead;
-	import org.apache.royale.core.IBeadLayout;
-	import org.apache.royale.core.IBeadModel;
-	import org.apache.royale.core.IBeadView;
     import org.apache.royale.core.IChild;
 	import org.apache.royale.core.IDataProviderItemRendererMapper;
 	import org.apache.royale.core.IDataProviderModel;
@@ -31,15 +27,9 @@ package org.apache.royale.html.beads
 	import org.apache.royale.core.IParent;
 	import org.apache.royale.core.IStrand;
 	import org.apache.royale.core.IUIBase;
-	import org.apache.royale.core.Strand;
-	import org.apache.royale.core.UIBase;
-	import org.apache.royale.core.ValuesManager;
 	import org.apache.royale.events.Event;
-	import org.apache.royale.events.IEventDispatcher;
     import org.apache.royale.events.ItemAddedEvent;
     import org.apache.royale.events.ItemRemovedEvent;
-	import org.apache.royale.html.supportClasses.Border;
-	import org.apache.royale.html.supportClasses.DataGroup;
 	import org.apache.royale.html.beads.IListView;
 	import org.apache.royale.events.Event;
 	import org.apache.royale.html.supportClasses.DataItemRenderer;
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SliderView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SliderView.as
index 99e5b3d..17eb60b 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SliderView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/SliderView.as
@@ -39,6 +39,7 @@ package org.apache.royale.html.beads
     import org.apache.royale.html.Button;
     import org.apache.royale.html.TextButton;
     import org.apache.royale.utils.sendStrandEvent;
+    import org.apache.royale.utils.loadBeadFromValuesManager;
 	
 	/**
 	 *  The SliderView class creates the visual elements of the org.apache.royale.html.Slider 
@@ -81,12 +82,7 @@ package org.apache.royale.html.beads
 		override public function set strand(value:IStrand):void
 		{
 			super.strand = value;
-			
-			var layout:IBeadLayout = _strand.getBeadByType(IBeadLayout) as IBeadLayout;
-			if (layout == null) {
-				var klass:Class = ValuesManager.valuesImpl.getValue(_strand, "iBeadLayout");
-				_strand.addBead(new klass() as IBead);
-			}
+			loadBeadFromValuesManager(IBeadLayout,"iBeadLayout",_strand);
 			
 			COMPILE::SWF {
 				var s:UIBase = UIBase(_strand);
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
index ac5d1a6..781e735 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TreeGridView.as
@@ -45,6 +45,7 @@ package org.apache.royale.html.beads
 	import org.apache.royale.html.beads.models.SingleSelectionCollectionViewModel;
 	import org.apache.royale.html.supportClasses.IDataGridColumn;
 	import org.apache.royale.utils.sendStrandEvent;
+	import org.apache.royale.utils.loadBeadFromValuesManager;
 	
 	/**
 	 * The TreeGridView class is responsible for creating the sub-components of the TreeGrid:
@@ -117,17 +118,9 @@ package org.apache.royale.html.beads
 		{
 			super.strand = value;
 			_strand = value;
-			
-			var layout:IBeadLayout = _strand.getBeadByType(TreeGridLayout) as IBeadLayout;
-			if (layout == null) {
-				var layoutClass:Class = ValuesManager.valuesImpl.getValue(_strand, "iBeadLayout") as Class;
-				if (layoutClass != null) {
-					layout = new layoutClass() as IBeadLayout;
-				} else {
-					layout = new TreeGridLayout(); // default
-				}
-				_strand.addBead(layout);
-			}
+			var layout:IBeadLayout = loadBeadFromValuesManager(IBeadLayout,"iBeadLayout",_strand) as IBeadLayout;
+			if(!layout)
+				_strand.addBead(new TreeGridLayout()); // default
 
 			listenOnStrand("beadsAdded", finishSetup);
 		}
diff --git a/frameworks/projects/HTML/src/main/royale/org/apache/royale/html/NodeElementBase.as b/frameworks/projects/HTML/src/main/royale/org/apache/royale/html/NodeElementBase.as
index 2f98dfb..8d4298f 100644
--- a/frameworks/projects/HTML/src/main/royale/org/apache/royale/html/NodeElementBase.as
+++ b/frameworks/projects/HTML/src/main/royale/org/apache/royale/html/NodeElementBase.as
@@ -38,6 +38,11 @@ package org.apache.royale.html
 			return false;
 		}
 
+		override protected function needsLayout():Boolean
+		{
+			return false;
+		}
+
 		COMPILE::SWF
 		{
 			private var _nodeValue:String;
diff --git a/frameworks/projects/HTML/src/main/royale/org/apache/royale/svg/elements/SVGBase.as b/frameworks/projects/HTML/src/main/royale/org/apache/royale/svg/elements/SVGBase.as
index 5093114..e7888e0 100644
--- a/frameworks/projects/HTML/src/main/royale/org/apache/royale/svg/elements/SVGBase.as
+++ b/frameworks/projects/HTML/src/main/royale/org/apache/royale/svg/elements/SVGBase.as
@@ -34,6 +34,10 @@ package org.apache.royale.svg.elements
     {
       return false;
     }
+    override protected function needsLayout():Boolean
+    {
+      return false;
+    }
     override public function get x():Number{
       return Number(element.getAttribute("x"));
     }

[royale-asjs] 01/02: Already handled in GroupBase

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c05b811c60c7105fecd0f43c48214059df95a9bd
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Jan 2 12:31:23 2022 +0200

    Already handled in GroupBase
---
 .../Basic/src/main/royale/org/apache/royale/html/ControlBar.as   | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as
index d1f22a8..c877f0c 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ControlBar.as
@@ -66,15 +66,6 @@ package org.apache.royale.html
 			typeNames = "ControlBar";
 		}
 
-		/**
-		 * @private
-		 */
-		override public function addedToParent():void
-		{
-			super.addedToParent();
-			loadBeadFromValuesManager(IBeadLayout, "iBeadLayout", this);
-		}
-
         /**
          * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
          */