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

yishayw 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 899f744  Add IFileModel.size and remove FileLoader dependencies from 
loaders
899f744 is described below

commit 899f74407b5540241c423af9b8f225c0fd9693e1
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Sun Jul 21 09:46:56 2019 +0300

    Add IFileModel.size and remove FileLoader dependencies from loaders
---
 examples/royale/FileProxy/src/main/royale/FileProxy.mxml    |  3 +--
 .../src/main/royale/org/apache/royale/file/FileProxy.as     |  8 ++++++++
 .../src/main/royale/org/apache/royale/file/IFileModel.as    | 11 ++++++++++-
 .../main/royale/org/apache/royale/file/beads/FileLoader.as  |  5 +++--
 .../org/apache/royale/file/beads/FileLoaderAndUploader.as   |  5 +++--
 .../main/royale/org/apache/royale/file/beads/FileModel.as   |  9 ++++++++-
 .../org/apache/royale/file/beads/FileModelWithParams.as     | 13 +++++++++++++
 .../royale/org/apache/royale/file/beads/FileUploader.as     |  5 +++--
 8 files changed, 49 insertions(+), 10 deletions(-)

diff --git a/examples/royale/FileProxy/src/main/royale/FileProxy.mxml 
b/examples/royale/FileProxy/src/main/royale/FileProxy.mxml
index 39f318a..80be2c2 100644
--- a/examples/royale/FileProxy/src/main/royale/FileProxy.mxml
+++ b/examples/royale/FileProxy/src/main/royale/FileProxy.mxml
@@ -33,7 +33,6 @@ limitations under the License.
                <![CDATA[
                        import org.apache.royale.events.Event;
                        import org.apache.royale.events.MouseEvent;
-                       import org.apache.royale.file.beads.FileModel;
                        import org.apache.royale.html.SimpleAlert;
                        
                        protected function 
clickHandler(event:org.apache.royale.events.MouseEvent):void
@@ -51,7 +50,7 @@ limitations under the License.
                        private function 
blobChangedHandler(e:org.apache.royale.events.Event):void
                        {
                                var fileModel:FileModel = myFileProxy.model as 
FileModel;
-                               SimpleAlert.show(fileModel.blob.length + " 
bytes of " + fileModel.name + " were loaded", this);
+                               SimpleAlert.show(myFileProxy.size + " bytes of 
" + fileModel.name + " were loaded", this);
                        }
                        
                ]]>
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/FileProxy.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/FileProxy.as
index 4179ae9..e4fb53b 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/FileProxy.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/FileProxy.as
@@ -93,6 +93,14 @@ package org.apache.royale.file
                }
 
                /**
+                *  @copy org.apache.royale.file.IFileModel#size
+                */
+               public function get size():Number
+               {
+                       return (model as IFileModel).size;
+               }
+
+               /**
                 *  @copy org.apache.royale.file.IFileModel#blob
                 */
                public function get blob():Object
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/IFileModel.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/IFileModel.as
index ba17788..dcd2532 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/IFileModel.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/IFileModel.as
@@ -37,6 +37,16 @@ package org.apache.royale.file
                function get type():String;
                
                /**
+                *  The size of the file
+                * 
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion Royale 0.9
+                */
+               function get size():Number;
+
+               /**
                 *  The last modified time of the file, in millisecond since 
the UNIX epoch (January 1st, 1970 at Midnight).
                 * 
                 *  @langversion 3.0
@@ -64,7 +74,6 @@ package org.apache.royale.file
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9.6
                 */
-
                function get blob():Object;
 
                /**
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
index b8c6575..bfebafd 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoader.as
@@ -20,6 +20,7 @@ package org.apache.royale.file.beads
        import org.apache.royale.core.IBead;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.file.FileProxy;
+       import org.apache.royale.file.IFileModel;
        import org.apache.royale.utils.BinaryData;
 
        COMPILE::SWF
@@ -97,9 +98,9 @@ package org.apache.royale.file.beads
                        _strand = value;
                }
                
-               private function get fileModel():FileModel
+               private function get fileModel():IFileModel
                {
-                       return (_strand as FileProxy).model as FileModel;
+                       return (_strand as FileProxy).model as IFileModel;
                }
                
        }
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoaderAndUploader.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoaderAndUploader.as
index a5b7e47..2b870a1 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoaderAndUploader.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileLoaderAndUploader.as
@@ -21,6 +21,7 @@ package org.apache.royale.file.beads
        import org.apache.royale.core.IStrand;
        import org.apache.royale.events.Event;
        import org.apache.royale.file.FileProxy;
+       import org.apache.royale.file.IFileModel;
 
        /**
         *  The FileLoaderAndUploader is a compound bead that allows you
@@ -80,8 +81,8 @@ package org.apache.royale.file.beads
                
                public function upload(url:String):void
                {
-                       var fileModel:FileModel = (_strand as FileProxy).model 
as FileModel;
-                       if (!fileModel.blob)
+                       var fileModel:IFileModel = (_strand as FileProxy).model 
as IFileModel;
+                       if (fileModel.size <= 0)
                        {
                                _url = url;
                                (_strand as 
FileProxy).model.addEventListener("blobChanged", blobChangedHandler);
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModel.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModel.as
index 0abaa36..d1d3d60 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModel.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModel.as
@@ -86,7 +86,14 @@ package org.apache.royale.file.beads
                 */
                public function get size():Number
                {
-                       return _data.size;
+                       COMPILE::SWF 
+                       {
+                               return _data.size;
+                       }
+                       COMPILE::JS 
+                       {
+                               return blob ? blob.length : -1;
+                       }
                }
                
                /**
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
index 5ffec8b..edf6f1b 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileModelWithParams.as
@@ -113,5 +113,18 @@ package org.apache.royale.file.beads
                {
                        _fileParamName = value;
                }
+       
+               override public function get size():Number
+               {
+                       COMPILE::SWF 
+                       {
+                               return super.size;
+                       }
+                       COMPILE::JS 
+                       {
+                               var myBlob:Blob = _blob["get"](fileParamName) 
as Blob;
+                               return myBlob ? myBlob.size : -1;
+                       }
+               }
        }
 }
diff --git 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileUploader.as
 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileUploader.as
index 4bf6fe7..c8eb3cb 100644
--- 
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileUploader.as
+++ 
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileUploader.as
@@ -22,6 +22,7 @@ package org.apache.royale.file.beads
        import org.apache.royale.events.Event;
        import org.apache.royale.events.IEventDispatcher;
        import org.apache.royale.file.FileProxy;
+       import org.apache.royale.file.IFileModel;
        import org.apache.royale.net.URLBinaryLoader;
        import org.apache.royale.net.URLRequest;
 
@@ -75,12 +76,12 @@ package org.apache.royale.file.beads
 //                     COMPILE::SWF
 //                     {
 //                             var flashURL:flash.net.URLRequest = new 
URLRequest(url.url);
-//                             (host.model as 
FileModel).fileReference.upload(flashURL);
+//                             (host.model as 
IFileModel).fileReference.upload(flashURL);
 //                     }
                        var binaryUploader:URLBinaryLoader = new 
URLBinaryLoader();
                        var req:URLRequest = new URLRequest();
                        req.method = "POST";
-                       req.data = (host.model as FileModel).blob;
+                       req.data = (host.model as IFileModel).blob;
                        req.url = url;
                        binaryUploader.addEventListener(Event.COMPLETE, 
completeHandler);
                        binaryUploader.load(req);

Reply via email to