Fixing SimpleDataProviderChangeNotifier which was broken after recent
changes to DataProviderChangeNotifier


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

Branch: refs/heads/feature/strand-work
Commit: fd2ba63a27aa7bc67ab0cd29094a9ed2c90ec6c2
Parents: e32fc22
Author: DESKTOP-RH4S838\Yishay <yishayj...@hotmail.com>
Authored: Mon Jul 31 11:06:16 2017 +0300
Committer: DESKTOP-RH4S838\Yishay <yishayj...@hotmail.com>
Committed: Mon Jul 31 11:06:16 2017 +0300

----------------------------------------------------------------------
 .../html/beads/DataProviderChangeNotifier.as    | 26 ++++++++++++++------
 .../beads/SimpleDataProviderChangeNotifier.as   |  3 ++-
 2 files changed, 20 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd2ba63a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
index 22155cb..9b2315f 100644
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/DataProviderChangeNotifier.as
@@ -54,16 +54,10 @@ package org.apache.flex.html.beads
                        {
                                if(object[propertyName] == dataProvider)
                                        return;
-                dataProvider.removeEventListener("itemAdded", 
handleDataProviderChanges);
-                dataProvider.removeEventListener("itemRemoved", 
handleDataProviderChanges);
-                dataProvider.removeEventListener("itemUpdated", 
handleDataProviderChanges);
-                dataProvider.removeEventListener("collectionChanged", 
handleDataProviderChanges);
+                               detachEventListeners();
                        }
                        dataProvider = object[propertyName] as ArrayList;
-            dataProvider.addEventListener("itemAdded", 
handleDataProviderChanges);
-            dataProvider.addEventListener("itemRemoved", 
handleDataProviderChanges);
-            dataProvider.addEventListener("itemUpdated", 
handleDataProviderChanges);
-            dataProvider.addEventListener("collectionChanged", 
handleDataProviderChanges);
+                       attachEventListeners();
                }
 
                private function handleDataProviderChanges(event:Event):void
@@ -71,5 +65,21 @@ package org.apache.flex.html.beads
             var selectionModel:ISelectionModel = 
_strand.getBeadByType(ISelectionModel) as ISelectionModel;
             selectionModel.dispatchEvent(new Event("dataProviderChanged"));
                }
+               
+               protected function attachEventListeners():void
+               {
+                       dataProvider.addEventListener("itemAdded", 
handleDataProviderChanges);
+                       dataProvider.addEventListener("itemRemoved", 
handleDataProviderChanges);
+                       dataProvider.addEventListener("itemUpdated", 
handleDataProviderChanges);
+                       dataProvider.addEventListener("collectionChanged", 
handleDataProviderChanges);
+               }
+               
+               protected function detachEventListeners():void
+               {
+                       dataProvider.removeEventListener("itemAdded", 
handleDataProviderChanges);
+                       dataProvider.removeEventListener("itemRemoved", 
handleDataProviderChanges);
+                       dataProvider.removeEventListener("itemUpdated", 
handleDataProviderChanges);
+                       dataProvider.removeEventListener("collectionChanged", 
handleDataProviderChanges);
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fd2ba63a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SimpleDataProviderChangeNotifier.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SimpleDataProviderChangeNotifier.as
 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SimpleDataProviderChangeNotifier.as
index 718f6bb..1d55c76 100644
--- 
a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SimpleDataProviderChangeNotifier.as
+++ 
b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/SimpleDataProviderChangeNotifier.as
@@ -64,7 +64,8 @@ package org.apache.flex.html.beads
                                        
selectionModel.addEventListener("dataProviderChanged", setFirstDataProvider);
                        } else
                        {
-                               super.destinationChangedHandler(event);
+                               detachEventListeners();
+                               attachEventListeners();
                        }
                }
                

Reply via email to