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
}
+
}