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

carlosrovira 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 bd4ac03  error-image: simplify bead and add deafault image to avoid 
define src each time is used.
bd4ac03 is described below

commit bd4ac033f251bc78c2630984741f029d54a8c27e
Author: Carlos Rovira <[email protected]>
AuthorDate: Sun Jul 12 12:49:20 2020 +0200

    error-image: simplify bead and add deafault image to avoid define src each 
time is used.
---
 .../src/main/royale/ImagePlayGround.mxml           |  8 +-
 .../org/apache/royale/html/beads/ErrorImage.as     | 88 +++++++++++-----------
 .../apache/royale/html/beads/ErrorImageButton.as   | 24 +++---
 .../assets/{jewel-no-image.svg => no-image.svg}    |  0
 4 files changed, 58 insertions(+), 62 deletions(-)

diff --git a/examples/jewel/TourDeJewel/src/main/royale/ImagePlayGround.mxml 
b/examples/jewel/TourDeJewel/src/main/royale/ImagePlayGround.mxml
index c07caad..b59f927 100644
--- a/examples/jewel/TourDeJewel/src/main/royale/ImagePlayGround.mxml
+++ b/examples/jewel/TourDeJewel/src/main/royale/ImagePlayGround.mxml
@@ -74,7 +74,7 @@ limitations under the License.
 
                                <j:ImageButton 
localId="imageButtonWithErrorBead" src="assets/royale.png">
                                        <j:beads>
-                        <js:ErrorImageButton src="assets/royale_spheres.png" 
emptyIsError="true"/>
+                        <js:ErrorImageButton emptyIsError="true"/>
                                        </j:beads>
                                </j:ImageButton>
                        </j:Card>
@@ -85,7 +85,7 @@ limitations under the License.
 
                                <js:ImageButton 
localId="imageButtonBasicErrorBead" src="assets/royale.png">
                                        <js:beads>
-                        <js:ErrorImageButton src="assets/royale_spheres.png" 
emptyIsError="true"/>
+                        <js:ErrorImageButton  emptyIsError="true"/>
                                        </js:beads>
                                </js:ImageButton>
                        </j:Card>
@@ -97,7 +97,7 @@ limitations under the License.
 
                                <j:Image localId="imageWithErrorBead" 
src="assets/royale.png">
                                        <j:beads>
-                        <js:ErrorImage src="assets/jewel-no-image.svg" 
emptyIsError="true"/>
+                        <js:ErrorImage emptyIsError="true"/>
                                        </j:beads>
                                </j:Image>
                        </j:Card>
@@ -108,7 +108,7 @@ limitations under the License.
 
                                <js:Image localId="imageBasicErrorBead" 
src="assets/royale.png">
                                        <js:beads>
-                        <js:ErrorImage src="assets/jewel-no-image.svg" 
emptyIsError="true"/>
+                        <js:ErrorImage emptyIsError="true"/>
                                        </js:beads>
                                </js:Image>
                        </j:Card>
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImage.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImage.as
index 34d39dd..12d2f36 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImage.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImage.as
@@ -18,14 +18,13 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads {
 
-    import org.apache.royale.core.IBead;
+    import org.apache.royale.core.Bead;
     import org.apache.royale.core.IHasImage;
     import org.apache.royale.core.IImageModel;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.events.Event;
-    import org.apache.royale.events.IEventDispatcher;
   
-  /**
+    /**
         *  The ErrorImage class is a bead that can be used to 
      *  display an alternate image, in the event that the specified image 
      *  cannot be loaded.
@@ -38,11 +37,8 @@ package org.apache.royale.html.beads {
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9.8
         */
-
-    public class ErrorImage implements IBead {
-
-        protected var _strand:IStrand;
-
+    public class ErrorImage extends Bead
+    {
         /**
          *  constructor.
          *
@@ -55,29 +51,48 @@ package org.apache.royale.html.beads {
         public function ErrorImage() {            
         }
 
-        private var _src:String;
+        private var _src:String = "assets/no-image.svg";
                /**
                 *  The source of the image
+         *  Defaults to "assets/no-image.svg"
          * 
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.8
-        */
+         */
         public function get src():String {
             return _src;
         }
-
         public function set src(value:String):void {
             _src = value;
         }
         
+        /**
+                *  The image element
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.8
+         */
                COMPILE::JS
         private var _hostElement:HTMLImageElement;
         
+        private var _hostModel:IImageModel;
+        /**
+                *  The image model
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9.8
+         */
         protected function get hostModel():IImageModel
-        {             
-            return _strand.getBeadByType(IImageModel) as IImageModel;
+        {    
+            if(!_hostModel)
+                _hostModel = _strand.getBeadByType(IImageModel) as IImageModel;
+            return _hostModel;
         }
 
         /**
@@ -88,37 +103,28 @@ package org.apache.royale.html.beads {
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.8
          *  @royaleignorecoercion org.apache.royale.core.IHasImage
-         *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
          *  @royaleignorecoercion HTMLImageElement
          */
-        public function set strand(value:IStrand):void 
+        override public function set strand(value:IStrand):void 
         {
-            _strand = value;
-
-               COMPILE::JS {
+            super.strand = value;
 
-                _hostElement = (_strand as IHasImage).imageElement as 
HTMLImageElement;
-                if(_hostElement){
-                    
-                    _hostElement.addEventListener('error', errorHandler);
-
-                    if(_emptyIsError)
-                    {
-                        (_strand as 
IEventDispatcher).addEventListener("beadsAdded", beadsAddedHandler);
-                    }
-                }
+            COMPILE::JS {
+            _hostElement = (_strand as IHasImage).imageElement as 
HTMLImageElement;
+            if(_hostElement)
+            {    
+                _hostElement.addEventListener('error', errorHandler);
+                if(_emptyIsError)
+                    listenOnStrand("beadsAdded", beadsAddedHandler);
+            }   
             }
         }
-        /**
-         *  @royaleignorecoercion org.apache.royale.events.IEventDispatcher
-         */
+
                COMPILE::JS
         private function beadsAddedHandler(event:Event):void
         {
-            (_strand as IEventDispatcher).removeEventListener("beadsAdded", 
beadsAddedHandler);
-
             if(hostModel)
-                hostModel.addEventListener("urlChanged",srcChangedHandler);
+                hostModel.addEventListener("urlChanged", srcChangedHandler);
             srcChangedHandler(null);
         }
 
@@ -130,7 +136,7 @@ package org.apache.royale.html.beads {
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.8
-        */
+         */
         public function get emptyIsError():Boolean {
             return _emptyIsError;
         }
@@ -140,11 +146,8 @@ package org.apache.royale.html.beads {
 
                COMPILE::JS
         private function errorHandler(event:Event):void {
-        
             if (_hostElement.src != _src)
-            {
                 _hostElement.src = _src;
-            }
         }
                
         private function srcChangedHandler(event:Event):void
@@ -152,16 +155,13 @@ package org.apache.royale.html.beads {
             if(hostModel && !hostModel.url){                
                 // Op1: Updating the model (It causes a double assignment that 
we must control)
                 if(hostModel.hasEventListener("urlChanged")){
-                    
hostModel.removeEventListener("urlChanged",srcChangedHandler);
+                    hostModel.removeEventListener("urlChanged", 
srcChangedHandler);
                     hostModel.url = src;
-                    
hostModel.addEventListener("urlChanged",srcChangedHandler);                    
+                    hostModel.addEventListener("urlChanged", 
srcChangedHandler);                    
                 }
                 // Op2: Direct assignment to element
                 //(hostElement as Object).src = src;
             }
-            
         }
-
     }
-}
-
+}
\ No newline at end of file
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImageButton.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImageButton.as
index 9f69698..18e596f 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImageButton.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/ErrorImageButton.as
@@ -16,18 +16,16 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html.beads {
-
+package org.apache.royale.html.beads
+{
     import org.apache.royale.core.IBead;
+    import org.apache.royale.core.IImageModel;
+    import org.apache.royale.core.IRenderedObject;
     import org.apache.royale.core.IStrand;
     import org.apache.royale.events.Event;
-
     import org.apache.royale.events.EventDispatcher;
-    import org.apache.royale.core.IRenderedObject;
-    import org.apache.royale.core.IImageModel;
-    import org.apache.royale.core.IImageButton;
   
-  /**
+    /**
         *  The ErrorImage class is a bead that can be used to 
      *  display an alternate image, in the event that the specified image 
      *  cannot be loaded.
@@ -40,11 +38,8 @@ package org.apache.royale.html.beads {
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9.8
         */
-
-    public class ErrorImageButton implements IBead {
-
-        protected var _strand:IStrand;
-
+    public class ErrorImageButton implements IBead
+    {
         /**
          *  constructor.
          *
@@ -57,7 +52,7 @@ package org.apache.royale.html.beads {
         public function ErrorImageButton() {            
         }
 
-        private var _src:String;
+        private var _src:String = "assets/no-image.svg";
                /**
                 *  The source of the image
          * 
@@ -88,6 +83,7 @@ package org.apache.royale.html.beads {
             return _strand.getBeadByType(IImageModel) as IImageModel;
         }
 
+        protected var _strand:IStrand;
         /**
          *  @copy org.apache.royale.core.IBead#strand
          *
@@ -143,7 +139,7 @@ package org.apache.royale.html.beads {
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.9.8
-        */
+         */
         public function get emptyIsError():Boolean {
             return _emptyIsError;
         }
diff --git 
a/frameworks/themes/JewelTheme/src/main/resources/assets/jewel-no-image.svg 
b/frameworks/themes/JewelTheme/src/main/resources/assets/no-image.svg
similarity index 100%
rename from 
frameworks/themes/JewelTheme/src/main/resources/assets/jewel-no-image.svg
rename to frameworks/themes/JewelTheme/src/main/resources/assets/no-image.svg

Reply via email to