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 8fb96cb  Started emulating file reference.
     new f4318d2  Merge branch 'develop' of 
https://github.com/apache/royale-asjs into develop
8fb96cb is described below

commit 8fb96cbec00da10a2c02a34b920c9776088b6c40
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Thu Feb 13 12:29:14 2020 +0200

    Started emulating file reference.
    
    Still no error handling.
    
    Reference #708
---
 .../MXRoyale/src/main/royale/mx/net/FileFilter.as  | 13 +++--
 .../src/main/royale/mx/net/FileReference.as        | 68 +++++++++++++++-------
 2 files changed, 54 insertions(+), 27 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileFilter.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileFilter.as
index d86758b..12ddc42 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileFilter.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileFilter.as
@@ -23,27 +23,30 @@ package mx.net
 
    public class FileFilter 
    {
+          private var _description:String;
+          private var _extension:String;
       public function FileFilter(description:String, extension:String, 
macType:String = null)
          {
-         
+                 _description = description;
+                 _extension = extension;
          }
            public function get description():String
                {
-                  return "";
+                  return _description;
                }
         public function set description(value:String):void
                {
-               
+                       _description = value;
                }
 
                
            public function get extension():String
                {
-                  return "";
+                  return _extension;
                }
         public function set extension(value:String):void
                {
-               
+                       _extension = value;
                }
                
                
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as
index 4ff9e2a..7f5052f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/net/FileReference.as
@@ -20,52 +20,75 @@
 package mx.net
 {
 
- import org.apache.royale.events.EventDispatcher;
+ import org.apache.royale.file.FileProxy;
+ import org.apache.royale.file.beads.FileBrowserWithFilter;
  import mx.utils.ByteArray;
- 
-   COMPILE::SWF{
-       import flash.net.FileFilter;
-               }
+ import org.apache.royale.file.beads.FileLoader;
+ import org.apache.royale.file.beads.FileModel;
+ import org.apache.royale.file.beads.FileLoaderAndUploader;
+ import org.apache.royale.events.Event;
+ import org.apache.royale.net.URLRequest;
 
-   COMPILE::JS{
-       import mx.net.FileFilter;
-              }
-
-   public class FileReference extends org.apache.royale.events.EventDispatcher
+   public class FileReference extends FileProxy
    {
       
+      private var _model:FileModel;
+      private var _browser:FileBrowserWithFilter;
+      private var _loader:FileLoader;
+      private var _uploader:FileLoaderAndUploader;
       public function FileReference()
       {
+                 super();
+                 _model = new FileModel();
+                 _browser = new FileBrowserWithFilter();
+                 _uploader = new FileLoaderAndUploader();
+                 addBead(_model);
+                 addBead(_browser);
+                 addBead(_uploader);
+                 addEventListener("modelChanged", modelChangedHandler);
          }
   
       
       public function browse(typeFilter:Array = null):Boolean
       {
+         var allFilters:Array = [];
+         if (typeFilter)
+                {
+                       for (var i:int = 0; i < typeFilter.length; i++)
+                       {
+                               var fileFilter:FileFilter = typeFilter[i] as 
FileFilter;
+                               var filters:Array = 
fileFilter.extension.split(";");
+                               allFilters = allFilters.concat(filters);
+                       }
+                       _browser.filter = allFilters.join(",");
+                }
+                _browser.browse();
          return true;
       }
                 
          public function load():void
          {
+                 if (!_loader)
+                 {
+                         // FileLoaderAndUploader has injected this
+                         _loader = getBeadByType(FileLoader) as FileLoader;
+                 }
+                 _loader.load();
          }
          
-         public function get name():String
+         public function get data():ByteArray
          {
-           return "";
+        return blob as ByteArray; // need to create a model that actually 
returns a ByteArray
          }
-         
-         public function get data():ByteArray
+
+         public function upload(request:URLRequest, uploadDataFieldName:String 
= "Filedata", testUpload:Boolean = false):void
          {
-           return null;
+                 _uploader.upload(request.url);
          }
          
-         public function get size():Number
-          {
-            return 0;
-          }
-      
-         public function get type():String
+         private function modelChangedHandler(event:Event):void
          {
-            return null; 
+                 dispatchEvent(new Event(Event.SELECT));
          }
          
          public function save(data:*, defaultFileName:String = null):void
@@ -74,6 +97,7 @@ package mx.net
           }
 
       
+
    }
 
             

Reply via email to