This is an automated email from the ASF dual-hosted git repository.

carlosrovira 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 cb70884  DataItemRendererFactoryForCollectionView: solve 
ISelectionModel issue, this will need to be separated to other bead to make it 
more PAYG (fixes #848)
cb70884 is described below

commit cb7088462a99960f2bfb499eb5bd30532fa697df
Author: Carlos Rovira <[email protected]>
AuthorDate: Fri Jun 5 16:44:38 2020 +0200

    DataItemRendererFactoryForCollectionView: solve ISelectionModel issue, this 
will need to be separated to other bead to make it more PAYG (fixes #848)
---
 .../DataItemRendererFactoryForCollectionView.as    | 35 ++++++++++++----------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
index 4bbdf07..5d67e74 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForCollectionView.as
@@ -114,10 +114,11 @@ package org.apache.royale.html.beads
                        }
 
                        //adjust the model's selectedIndex, if applicable
-                       if (event.index <= 
ISelectionModel(dataProviderModel).selectedIndex) {
-                               
ISelectionModel(dataProviderModel).selectedIndex = 
ISelectionModel(dataProviderModel).selectedIndex + 1;
+                       if(dataProviderModel is ISelectionModel) {
+                               if (event.index <= 
ISelectionModel(dataProviderModel).selectedIndex) {
+                                       
ISelectionModel(dataProviderModel).selectedIndex = 
ISelectionModel(dataProviderModel).selectedIndex + 1;
+                               }
                        }
-
                        
                        sendStrandEvent(_strand,"itemsCreated");
                        sendStrandEvent(_strand,"layoutNeeded");
@@ -159,13 +160,15 @@ package org.apache.royale.html.beads
                        }
 
                        //adjust the model's selectedIndex, if applicable
-                       if (event.index < 
ISelectionModel(dataProviderModel).selectedIndex)
-                       {
-                               
ISelectionModel(dataProviderModel).selectedIndex = 
ISelectionModel(dataProviderModel).selectedIndex - 1;
-                       } 
-                       else if (event.index == 
ISelectionModel(dataProviderModel).selectedIndex)
-                       {
-                               
ISelectionModel(dataProviderModel).selectedIndex = -1;
+                       if(dataProviderModel is ISelectionModel) {
+                               if (event.index < 
ISelectionModel(dataProviderModel).selectedIndex)
+                               {
+                                       
ISelectionModel(dataProviderModel).selectedIndex = 
ISelectionModel(dataProviderModel).selectedIndex - 1;
+                               } 
+                               else if (event.index == 
ISelectionModel(dataProviderModel).selectedIndex)
+                               {
+                                       
ISelectionModel(dataProviderModel).selectedIndex = -1;
+                               }
                        }
 
                        sendStrandEvent(_strand,"layoutNeeded");
@@ -195,11 +198,13 @@ package org.apache.royale.html.beads
                        (itemRendererInitializer as 
IIndexedItemRendererInitializer).initializeIndexedItemRenderer(ir, data, 
event.index);
                        ir.data = data;
 
-                       if (event.index == 
ISelectionModel(dataProviderModel).selectedIndex) {
-                               //manually trigger a selection change, even if 
there was actually none.
-                               //This causes selection-based bindings to work
-                IEventDispatcher(dataProviderModel).dispatchEvent(new 
Event('selectedIndexChanged'));
-            }                  
+                       if(dataProviderModel is ISelectionModel) {
+                               if (event.index == 
ISelectionModel(dataProviderModel).selectedIndex) {
+                                       //manually trigger a selection change, 
even if there was actually none.
+                                       //This causes selection-based bindings 
to work
+                                       
IEventDispatcher(dataProviderModel).dispatchEvent(new 
Event('selectedIndexChanged'));
+                               }
+                       }
                }
 
                override protected function get dataProviderLength():int

Reply via email to