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