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