You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by pi...@apache.org on 2018/12/17 09:55:42 UTC
[royale-asjs] branch
bugfix/issue_353_double_dispatch_of_change_event_in_Jewel_List updated:
DispatchChangeOnStartup: Dispatch "change" based on selected item/index
model changes
This is an automated email from the ASF dual-hosted git repository.
piotrz pushed a commit to branch bugfix/issue_353_double_dispatch_of_change_event_in_Jewel_List
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/bugfix/issue_353_double_dispatch_of_change_event_in_Jewel_List by this push:
new 14f6354 DispatchChangeOnStartup: Dispatch "change" based on selected item/index model changes
14f6354 is described below
commit 14f6354e037e5854900ef5620581f6914bd604c4
Author: Piotr Zarzycki <pi...@gmail.com>
AuthorDate: Mon Dec 17 10:55:30 2018 +0100
DispatchChangeOnStartup: Dispatch "change" based on selected item/index model changes
- Because model do not dispatch anymore change event DispatchChangeOnStartup bead will dispatch "change" event based on dataProviderChanged, selectedItemChanged or selectedIndexChanged event. (reference #353)
---
.../jewel/beads/controls/DispatchChangeOnStartup.as | 16 +++++++++-------
.../royale/jewel/beads/models/ArrayListSelectionModel.as | 3 ---
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/DispatchChangeOnStartup.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/DispatchChangeOnStartup.as
index 2ca3e50..cf6ef81 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/DispatchChangeOnStartup.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/DispatchChangeOnStartup.as
@@ -63,7 +63,7 @@ package org.apache.royale.jewel.beads.controls
public function set strand(value:IStrand):void
{
_strand = value;
- IEventDispatcher(_strand).addEventListener('beadsAdded', adjustModel);
+ IEventDispatcher(_strand).addEventListener('beadsAdded', onBeadsAdded);
}
@@ -76,14 +76,14 @@ package org.apache.royale.jewel.beads.controls
* @productversion Royale 0.9.4
* @royaleignorecoercion org.apache.royale.events.IEventDispatcher
*/
- private function adjustModel(event:Event):void
+ private function onBeadsAdded(event:Event):void
{
- IEventDispatcher(_strand).removeEventListener('beadsAdded', adjustModel);
+ IEventDispatcher(_strand).removeEventListener('beadsAdded', onBeadsAdded);
const model:IJewelSelectionModel = _strand.getBeadByType(IJewelSelectionModel) as IJewelSelectionModel;
if (model) {
- model.dispatchChangeOnDataProviderChange = true;
IEventDispatcher(model).addEventListener('dataProviderChanged', onChange);
- IEventDispatcher(model).addEventListener('change', onChange);
+ IEventDispatcher(model).addEventListener('selectedItemChanged', onChange);
+ IEventDispatcher(model).addEventListener('selectedIndexChanged', onChange);
} else {
//for now
throw new Error('DispatchChangeOnStartup bead is not yet compatible with the component it is being applied to');
@@ -102,9 +102,11 @@ package org.apache.royale.jewel.beads.controls
return;
}
const model:IJewelSelectionModel = _strand.getBeadByType(IJewelSelectionModel) as IJewelSelectionModel;
- model.dispatchChangeOnDataProviderChange = false;
IEventDispatcher(model).removeEventListener('dataProviderChanged', onChange);
- IEventDispatcher(model).removeEventListener('change', onChange);
+ IEventDispatcher(model).removeEventListener('selectedItemChanged', onChange);
+ IEventDispatcher(model).removeEventListener('selectedIndexChanged', onChange);
+
+ IEventDispatcher(_strand).dispatchEvent(new Event("change"));
}
}
}
diff --git a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ArrayListSelectionModel.as b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ArrayListSelectionModel.as
index 1533698..3da08ee 100644
--- a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ArrayListSelectionModel.as
+++ b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/models/ArrayListSelectionModel.as
@@ -251,9 +251,6 @@ package org.apache.royale.jewel.beads.models
dispatchEvent(new Event("selectedItemChanged"));
if (indexChanged)
dispatchEvent(new Event("selectedIndexChanged"));
- if (!_processingInteractiveChange) {
- dispatchEvent(new Event("change"));
- }
}
}