You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2020/06/05 14:44:48 UTC

[royale-asjs] branch develop updated: DataItemRendererFactoryForCollectionView: solve ISelectionModel issue, this will need to be separated to other bead to make it more PAYG (fixes #848)

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 <ca...@apache.org>
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