This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch file_proxy_refactor
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/file_proxy_refactor by this
push:
new 8d71548 Refactor of FileProxy so that it doesn't rely on FileModel
and uses IFileModel implementers instead.
8d71548 is described below
commit 8d715488150d0909d20d6acdd470800ee2c36dc5
Author: DESKTOP-RH4S838\Yishay <[email protected]>
AuthorDate: Sat Jul 20 11:52:19 2019 +0300
Refactor of FileProxy so that it doesn't rely on FileModel and uses
IFileModel implementers instead.
---
.../royale/org/apache/royale/file/FileProxy.as | 32 ++++++++++++++++++++++
.../royale/org/apache/royale/file/IFileModel.as | 24 ++++++++++++++++
.../org/apache/royale/file/beads/FileBrowser.as | 9 ++++--
.../org/apache/royale/file/beads/FileLoader.as | 2 +-
.../org/apache/royale/file/beads/FileModel.as | 28 +++++++++++--------
5 files changed, 81 insertions(+), 14 deletions(-)
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 a9b74f8..4179ae9 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
@@ -21,6 +21,11 @@ package org.apache.royale.file
import org.apache.royale.core.IDocument;
import org.apache.royale.core.Strand;
import org.apache.royale.utils.BinaryData;
+
+ COMPILE::SWF
+ {
+ import flash.net.FileReference;
+ }
/**
* Indicates that the model has changed
@@ -103,5 +108,32 @@ package org.apache.royale.file
(model as IFileModel).fileContent = value;
}
+ /**
+ * @copy org.apache.royale.file.IFileModel#fileReference
+ */
+ COMPILE::SWF
+ public function get fileReference():FileReference
+ {
+ return (model as IFileModel).fileReference;
+ }
+
+ COMPILE::JS
+ public function get fileReference():File
+ {
+ return (model as IFileModel).fileReference;
+ }
+
+ COMPILE::SWF
+ public function set fileReference(value:FileReference):void
+ {
+ (model as IFileModel).fileReference = value;
+ }
+
+ COMPILE::JS
+ public function set fileReference(value:File):void
+ {
+ (model as IFileModel).fileReference = value;
+ }
+
}
}
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 365e20f..ba17788 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
@@ -19,6 +19,10 @@
package org.apache.royale.file
{
import org.apache.royale.utils.BinaryData;
+ COMPILE::SWF
+ {
+ import flash.net.FileReference;
+ }
public interface IFileModel
{
@@ -60,7 +64,9 @@ package org.apache.royale.file
* @playerversion AIR 2.6
* @productversion Royale 0.9.6
*/
+
function get blob():Object;
+
/**
* The file content
*
@@ -71,6 +77,24 @@ package org.apache.royale.file
*/
function set fileContent(value:BinaryData):void;
+ /**
+ * The file reference containing meta data on the file
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion Royale 0.9.6
+ */
+ COMPILE::SWF
+ function set fileReference(value:FileReference):void;
+
+ COMPILE::JS
+ function set fileReference(value:File):void;
+ COMPILE::SWF
+ function get fileReference():FileReference;
+
+ COMPILE::JS
+ function get fileReference():File;
}
}
diff --git
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileBrowser.as
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileBrowser.as
index 6bd0abb..9c34462 100644
---
a/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileBrowser.as
+++
b/frameworks/projects/Network/src/main/royale/org/apache/royale/file/beads/FileBrowser.as
@@ -19,7 +19,9 @@ package org.apache.royale.file.beads
{
import org.apache.royale.core.IBead;
import org.apache.royale.core.IStrand;
+ import org.apache.royale.events.Event;
import org.apache.royale.file.FileProxy;
+ import org.apache.royale.file.IFileModel;
COMPILE::SWF
{
@@ -97,7 +99,8 @@ package org.apache.royale.file.beads
COMPILE::SWF
protected function
fileSelectHandler(event:flash.events.Event):void
{
- host.model = new FileModel(delegate);
+ (host.model as IFileModel).fileReference = delegate;
+ host.dispatchEvent(new
org.apache.royale.events.Event("modelChanged"));
// delegate reference passed to model, so cleanup this
bead to keep encapsulation
delegate.removeEventListener(flash.events.Event.SELECT,
fileSelectHandler);
createDelegate();
@@ -151,7 +154,9 @@ package org.apache.royale.file.beads
COMPILE::JS
private function
fileChangeHandler(e:org.apache.royale.events.Event):void
{
- host.model = new FileModel((delegate as
HTMLInputElement).files[0]);
+ var fileModel:IFileModel = host.model as IFileModel;
+ fileModel.fileReference = (delegate as
HTMLInputElement).files[0];
+ host.dispatchEvent(new Event("modelChanged"));
}
}
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 9f819af..b8c6575 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
@@ -67,7 +67,7 @@ package org.apache.royale.file.beads
{
var reader:FileReader = new FileReader();
goog.events.listen(reader, 'load',
fileLoadHandler);
- reader.readAsArrayBuffer(fileModel.file);
+
reader.readAsArrayBuffer(fileModel.fileReference);
}
}
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 4238f68..0abaa36 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
@@ -17,6 +17,10 @@
////////////////////////////////////////////////////////////////////////////////
package org.apache.royale.file.beads
{
+ COMPILE::SWF
+ {
+ import flash.net.FileReference;
+ }
import org.apache.royale.core.IBeadModel;
import org.apache.royale.core.IStrand;
import org.apache.royale.events.Event;
@@ -61,19 +65,21 @@ package org.apache.royale.file.beads
* @playerversion AIR 2.6
* @productversion Royale 0.9
*/
- public function FileModel(data:Object)
+ public function FileModel()
{
- COMPILE::SWF
- {
- _data = data as FileReference;
- }
- COMPILE::JS
- {
- _data = data as File;
- }
}
+ COMPILE::JS
+ public function set fileReference(value:File):void
+ {
+ _data = value;
+ }
+ COMPILE::SWF
+ public function set fileReference(value:FileReference):void
+ {
+ _data = value;
+ }
/**
* @copy org.apache.royale.file.IFileModel#size
@@ -137,10 +143,10 @@ package org.apache.royale.file.beads
* @langversion 3.0
* @playerversion Flash 10.2
* @playerversion AIR 2.6
- * @productversion Royale 0.9
+ * @productversion Royale 0.9.6
*/
COMPILE::JS
- public function get file():File
+ public function get fileReference():File
{
return _data as File;
}