Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.8.1
-
Component/s: ICE-Components
-
Labels:None
-
Environment:All
Description
When an event, like a ValueChangeEvent or ActionEvent is being broadcast to a component within a UISeries, such as an ice:panelSeries or ice:dataTable, there are redundant calls to setRowIndex(int), which does redundant row state saving and datamodel accessing.
This was originally discovered while working onICE-4565, where it was noticed that after an ActionEvent, which causes a navigation, the UISeries' row state saving was still happening, which was incorrect.
This was originally discovered while working on
The old UISeries.queueEvent method called the super method with the wrapping RowEvent, which caused UIData to further wrap that in its own WrapperEvent. More importantly, UISeries.broadcast calls UIData.broadcast for any non-RowEvent event, causing UIData to do its WrapperEvent handling, and do row state saving operations, unwrap the event, passing the RowEvent to the UISeries, which then took similar actions. Cutting out the call to UIData.queueEvent has the effect of cutting out the call to that undesired block of code in UIData.broadcast.