flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ha...@apache.org
Subject [45/50] git commit: [flex-asjs] [refs/heads/develop] - First implementation of FileProxy which takes on some of the functions of FileReference in Flash. More beads coming soon.
Date Mon, 03 Jul 2017 13:35:39 GMT
First implementation of FileProxy which takes on some of the functions
of FileReference in Flash. More beads coming soon.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/ff4dd1e8
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/ff4dd1e8
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/ff4dd1e8

Branch: refs/heads/develop
Commit: ff4dd1e8aa2a1f55ab31df2d3b48db73fc02e097
Parents: fad5214
Author: DESKTOP-RH4S838\Yishay <yishayjobs@hotmail.com>
Authored: Mon Jul 3 14:27:18 2017 +0300
Committer: DESKTOP-RH4S838\Yishay <yishayjobs@hotmail.com>
Committed: Mon Jul 3 14:27:18 2017 +0300

----------------------------------------------------------------------
 .../Network/src/main/flex/NetworkClasses.as     |   3 +-
 .../main/flex/org/apache/flex/file/FileProxy.as |  57 +++++++
 .../org/apache/flex/file/beads/FileBrowser.as   | 159 +++++++++++++++++++
 .../org/apache/flex/file/beads/FileModel.as     | 156 ++++++++++++++++++
 .../src/main/resources/basic-manifest.xml       |   4 +-
 5 files changed, 376 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff4dd1e8/frameworks/projects/Network/src/main/flex/NetworkClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/NetworkClasses.as b/frameworks/projects/Network/src/main/flex/NetworkClasses.as
index ed88471..51482f3 100644
--- a/frameworks/projects/Network/src/main/flex/NetworkClasses.as
+++ b/frameworks/projects/Network/src/main/flex/NetworkClasses.as
@@ -18,6 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {   
+	
 
 /**
  *  @private
@@ -27,7 +28,7 @@ package
  */
 internal class NetworkClasses
 {	
-    import org.apache.flex.net.URLBinaryLoader; URLBinaryLoader;
+	import org.apache.flex.net.URLBinaryLoader; URLBinaryLoader;
     import org.apache.flex.net.HTTPConstants; HTTPConstants;
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff4dd1e8/frameworks/projects/Network/src/main/flex/org/apache/flex/file/FileProxy.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/file/FileProxy.as b/frameworks/projects/Network/src/main/flex/org/apache/flex/file/FileProxy.as
new file mode 100644
index 0000000..7055f1b
--- /dev/null
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/file/FileProxy.as
@@ -0,0 +1,57 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.file
+{
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IDocument;
+	import org.apache.flex.core.Strand;
+	
+	/**
+	 *  The FileProxy class is where beads regarding file operations are added.
+	 *  Information about operations can be queried in the file model, or by
+	 *  listenening to events dispatched by beads.
+	 *
+	 *  @toplevel
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class FileProxy extends Strand implements IDocument
+	{
+		private var _document:Object;
+		public function FileProxy()
+		{
+			super();
+		}
+		
+
+		/**
+		 * @private
+		 */
+		public function setDocument(document:Object, id:String = null):void
+		{
+			_document = document;
+			for each (var bead:IBead in beads)
+			{
+				addBead(bead);
+			}
+		}
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff4dd1e8/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileBrowser.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileBrowser.as
b/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileBrowser.as
new file mode 100644
index 0000000..fa24548
--- /dev/null
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileBrowser.as
@@ -0,0 +1,159 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.file.beads
+{
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.file.FileProxy;
+
+	COMPILE::SWF 
+	{
+		import flash.net.FileReference;
+		import flash.events.Event;
+	}
+
+	COMPILE::JS
+	{
+		import org.apache.flex.events.Event;
+		import org.apache.flex.core.WrappedHTMLElement;
+		import goog.events;
+
+	}
+	
+	/**
+	 *  The FileBrowser class is a bead which adds to UploadImageProxy
+	 *  the ability to browse the file system and select a file.
+	 *  
+	 *
+	 *  @toplevel
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class FileBrowser implements IBead
+	{
+		private var _strand:IStrand;
+		COMPILE::SWF 
+		{
+			private var _delegate:flash.net.FileReference;
+		}
+		COMPILE::JS 
+		{
+			private var _delegate:WrappedHTMLElement;
+		}
+
+		/**
+		 *  Constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function FileBrowser()
+		{
+			createDelegate();
+		}
+		
+		/**
+		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+		 */
+		COMPILE::JS
+		public function createDelegate():void
+		{
+			_delegate = document.createElement('input') as WrappedHTMLElement;
+			_delegate.setAttribute('type', 'file');
+			goog.events.listen(_delegate, 'change', fileChangeHandler);
+		}
+		
+		/**
+		 *  @private
+		 */
+		COMPILE::SWF
+		public function createDelegate():void
+		{
+			_delegate = new flash.net.FileReference();
+			_delegate.addEventListener(flash.events.Event.SELECT, fileSelectHandler);
+		}
+		
+		/**
+		 *  @private
+		 */
+		COMPILE::SWF
+		protected function fileSelectHandler(event:flash.events.Event):void
+		{
+			host.model = new FileModel(_delegate);
+			// _delegate reference passed to model, so cleanup this bead to keep encapsulation
+			_delegate.removeEventListener(flash.events.Event.SELECT, fileSelectHandler);
+			createDelegate();
+		}
+		
+		/**
+		 *  Open up the system file browser. A user selection will trigger a 'modelChanged' event
on the strand.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function browse():void
+		{
+			COMPILE::SWF
+			{
+				_delegate.browse();	
+			}
+			COMPILE::JS 
+			{
+				_delegate.click();
+			}
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		private function get host():FileProxy
+		{
+			return _strand as FileProxy;
+		}
+		
+		/**
+		 *  @private
+		 *  @flexjsignorecoercion HTMLInputElement
+		 */		
+		COMPILE::JS
+		private function fileChangeHandler(e:org.apache.flex.events.Event):void
+		{
+			host.model = new FileModel((_delegate as HTMLInputElement).files[0]);
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff4dd1e8/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileModel.as
b/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileModel.as
new file mode 100644
index 0000000..7692e35
--- /dev/null
+++ b/frameworks/projects/Network/src/main/flex/org/apache/flex/file/beads/FileModel.as
@@ -0,0 +1,156 @@
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.file.beads
+{
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.EventDispatcher;
+
+	COMPILE::SWF
+	{
+		import flash.net.FileReference;
+	}
+	
+	/**
+	 *  The FileModel class is a bead that contains basic information
+	 *  on the file referenced by FileProxy
+	 *  
+	 *
+	 *  @toplevel
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class FileModel extends EventDispatcher implements IBeadModel
+	{
+		private var _strand:IStrand;
+		COMPILE::SWF
+		{
+			private var _data:FileReference;
+		}
+		COMPILE::JS
+		{
+			private var _data:File;
+		}
+	
+		/**
+		 *  Constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function FileModel(data:Object)
+		{
+			COMPILE::SWF
+			{
+				_data = data as FileReference;			
+			}
+			COMPILE::JS
+			{
+				_data = data as File;			
+			}
+		}
+		
+		
+		
+		/**
+		 *  The size of the file
+		 * 
+		 *  @copy org.apache.flex.core.IAlertModel#title
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get size():Number
+		{
+			return _data.size;
+		}
+		
+		/**
+		 *  The name of the file
+		 * 
+		 *  @copy org.apache.flex.core.IAlertModel#title
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get name():String
+		{
+			return _data.name;
+		}
+		
+		// TODO this will give different results in flash and in JS (extension and MIME respectively).
Fix this.
+		/**
+		 *  The type
+		 * 
+		 *  @copy org.apache.flex.core.IAlertModel#title
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get type():String
+		{
+			return _data.type;
+		}
+		
+		/**
+		 *  The last modified time of the file, in millisecond since the UNIX epoch (January 1st,
1970 at Midnight).
+		 * 
+		 *  @copy org.apache.flex.core.IAlertModel#title
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get lastModified():uint
+		{
+			COMPILE::SWF
+			{
+				return _data.modificationDate.milliseconds;
+			}
+			COMPILE::JS
+			{
+				return _data.lastModified;
+			}
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ff4dd1e8/frameworks/projects/Network/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Network/src/main/resources/basic-manifest.xml b/frameworks/projects/Network/src/main/resources/basic-manifest.xml
index 46f2ad9..b69c4a4 100644
--- a/frameworks/projects/Network/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Network/src/main/resources/basic-manifest.xml
@@ -20,9 +20,9 @@
 
 
 <componentPackage>
-
     <component id="HTTPService" class="org.apache.flex.net.HTTPService"/>
     <component id="BinaryUploader" class="org.apache.flex.net.BinaryUploader"/>
     <component id="CORSCredentialsBead" class="org.apache.flex.net.beads.CORSCredentialsBead"/>
-
+    <component id="FileProxy" class="org.apache.flex.file.FileProxy"/>
+    <component id="FileBrowser" class="org.apache.flex.file.beads.FileBrowser"/>
 </componentPackage>


Mime
View raw message