flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@apache.org
Subject [2/4] git commit: [flex-asjs] [refs/heads/develop] - Updated DataProviderChangeNotifier to listen for replacement of the dataProvider itself.
Date Thu, 22 Sep 2016 21:08:46 GMT
Updated DataProviderChangeNotifier to listen for replacement of the dataProvider itself.


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

Branch: refs/heads/develop
Commit: e0ac88c5a8efed5c26b4d3a08d772714617b9988
Parents: f9c4a01
Author: Peter Ent <pent@apache.org>
Authored: Mon Sep 19 15:38:24 2016 -0400
Committer: Peter Ent <pent@apache.org>
Committed: Mon Sep 19 15:38:24 2016 -0400

----------------------------------------------------------------------
 .../html/beads/DataProviderChangeNotifier.as    | 42 +++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e0ac88c5/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
index c639b90..a24810b 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
@@ -19,9 +19,12 @@
 package org.apache.flex.html.beads
 {
 	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IBeadModel;
 	import org.apache.flex.core.IDocument;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.IEventDispatcher;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.collections.ArrayList;
 	
@@ -64,15 +67,30 @@ package org.apache.flex.html.beads
 		{
 			_strand = value;
 			
+			if (_strand[destinationPropertyName] == null) {
+				var model:IBeadModel = UIBase(_strand).model as IBeadModel;
+				IEventDispatcher(model).addEventListener(changeEventName, destinationChangedHandler);
+			}
+			else {
+				destinationChangedHandler(null);
+			}
+		}
+		
+		private function destinationChangedHandler(event:Event):void
+		{
 			if (_dataProvider == null) {
 				var object:Object = document[sourceID];
 				_dataProvider = object[propertyName] as ArrayList;
 			}
+			else {
+				_dataProvider.removeEventListener("itemAdded", handleItemAdded);
+				_dataProvider.removeEventListener("itemRemoved", handleItemRemoved);
+				_dataProvider.removeEventListener("itemUpdated", handleItemUpdated);
+			}
 			
 			_dataProvider.addEventListener("itemAdded", handleItemAdded);
 			_dataProvider.addEventListener("itemRemoved", handleItemRemoved);
 			_dataProvider.addEventListener("itemUpdated", handleItemUpdated);
-
 		}
 		
 		protected var document:Object;
@@ -85,6 +103,28 @@ package org.apache.flex.html.beads
 			this.document = document;
 		}
 		
+		private var _destinationPropertyName:String;
+		
+		public function get destinationPropertyName():String
+		{
+			return _destinationPropertyName;
+		}
+		public function set destinationPropertyName(value:String):void
+		{
+			_destinationPropertyName = value;
+		}
+		
+		private var _changeEventName:String;
+		
+		public function get changeEventName():String
+		{
+			return _changeEventName;
+		}
+		public function set changeEventName(value:String):void
+		{
+			_changeEventName = value;
+		}
+		
 		private var _sourceID:String;
 		
 		/**


Mime
View raw message