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:25:55 UTC
[royale-asjs] branch develop updated: Added needsView and needsController optimization
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
The following commit(s) were added to refs/heads/develop by this push:
new ac1610b Added needsView and needsController optimization
ac1610b is described below
commit ac1610b3c90e5565af39825078c59df9528b7c7d
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Jan 2 12:25:44 2022 +0200
Added needsView and needsController optimization
---
.../main/royale/org/apache/royale/core/UIBase.as | 29 +++++++++++++++++++---
.../org/apache/royale/html/NodeElementBase.as | 10 ++++++++
.../org/apache/royale/svg/elements/SVGBase.as | 9 ++++++-
3 files changed, 44 insertions(+), 4 deletions(-)
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
index 6420b82..6d75c86 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
@@ -1391,9 +1391,32 @@ package org.apache.royale.core
*/
protected function loadBeads():void
{
- _view = loadBeadFromValuesManager(IBeadView, "iBeadView", this) as IBeadView;
- loadBeadFromValuesManager(IBeadController, "iBeadController", this);
- sendEvent(this,"viewChanged");
+ if(needsView())
+ {
+ _view = loadBeadFromValuesManager(IBeadView, "iBeadView", this) as IBeadView;
+ sendEvent(this,"viewChanged");
+ }
+
+ if(needsController())
+ loadBeadFromValuesManager(IBeadController, "iBeadController", this);
+
+ }
+ /**
+ * Subclasses can override this method to declare whether they need a view.
+ * Components which do not need a view can avoid searching for view beads
+ */
+ protected function needsView():Boolean
+ {
+ return true;
+ }
+
+ /**
+ * Subclasses can override this method to declare whether they need a controller.
+ * Components which do not need a controller can avoid searching for controller beads
+ */
+ protected function needsController():Boolean
+ {
+ return true;
}
private var _measurementBead:IMeasurementBead;
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 20e8520..2f98dfb 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
@@ -28,6 +28,16 @@ package org.apache.royale.html
typeNames = "";
}
+ override protected function needsView():Boolean
+ {
+ return false;
+ }
+
+ override protected function needsController():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 2a2df6a..5093114 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
@@ -26,7 +26,14 @@ package org.apache.royale.svg.elements
{
super();
}
-
+ override protected function needsView():Boolean
+ {
+ return false;
+ }
+ override protected function needsController():Boolean
+ {
+ return false;
+ }
override public function get x():Number{
return Number(element.getAttribute("x"));
}